React Native - 在Android上永久禁用软键盘
问题描述:
即使TextInput聚焦,是否可能不显示软键盘?我的用例是我需要完全隐藏键盘(例如,当您使用某个外部键盘时),但我需要保留对TextInput的焦点,以便我可以正常使用它(请参阅脱字符等)。React Native - 在Android上永久禁用软键盘
我不喜欢黑客入侵库,但是我在react-native包中找到textinput
文件夹,并找到了一些我认为可能相关的文件。首先这一个:
我替换为上线96代码:
editText.setInputType(InputType.TYPE_NULL); editText.setTextIsSelectable(true);
但遗憾的是它没有工作。
然后我发现这个文件:
而且注释掉线215,但同样,它并没有帮助。
有人可以指出我正确的方向如何完成这项工作吗?谢谢。
答
您可以通过在项目的/android
部分的MainActivity
上设置一个标志来完成此操作。
打开AndroidManifest.xml
文件app/src/main
和下MainActivity
变化:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
此
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden">
这应该永久禁用键盘该活动,这在一般情况下是大量你的React Native应用程序在Android上。欲了解更多信息,请参阅:https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft
感谢您的建议,但不幸的是它没有工作。我也尝试'stateAlwaysHidden',也没有工作。我忘了提及这些是我尝试的第一个选项。 – filster
看来'windowSoftInputMode'只有在焦点自动分配的情况下才有效。 (第三个答案在这里)https://stackoverflow.com/questions/1109022/close-hide-the-android-soft-keyboard “...默认情况下,Android会自动分配初始焦点到第一个EditText或可聚焦控件当然,InputMethod(通常是软键盘)会通过显示自己来响应焦点事件。当设置为stateAlwaysHidden时,AndroidManifest.xml中的windowSoftInputMode属性指示键盘忽略这个自动分配的初始焦点。 “ – filster