React Native - 在Android上永久禁用软键盘

时间:2017-09-13 19:15:05

标签: android react-native keyboard react-native-android android-textinputedittext

即使TextInput聚焦,是否有可能不显示软键盘?我的用例是我需要完全隐藏键盘(例如,当你使用一些外部键盘时),但我需要专注于TextInput,所以我可以正常使用它(请参阅插入符号等)。

我不喜欢黑客攻击库,但我查看了react-native包中的textinput文件夹,发现了一些我认为可能相关的文件。首先是这个:

https://github.com/facebook/react-native/blob/1e8f3b11027fe0a7514b4fc97d0798d3c64bc895/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java#L96

我用第96行替换了第96行的代码:

editText.setInputType(InputType.TYPE_NULL); editText.setTextIsSelectable(true);

但不幸的是它没有用。

然后我找到了这个文件:

https://github.com/facebook/react-native/blob/1e8f3b11027fe0a7514b4fc97d0798d3c64bc895/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java#L215

并注释掉第215行,但它再次没有帮助。

有人能指出我如何完成这项工作吗?感谢。

2 个答案:

答案 0 :(得分:1)

您可以通过在textinput中将属性“ showsoftinputonfocus”添加为false来实现

有关实施的更多信息 https://techythought.com/home/detail/Disable_keyboard_for_textinput_in_React-native

答案 1 :(得分:0)

您可以通过在项目MainActivity部分的/android上设置标记来执行此操作。

打开AndroidManifest.xml的{​​{1}}文件,并在app/src/main更改下

MainActivity

到这个

  <activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:windowSoftInputMode="adjustResize">

这应该为该Activity永久禁用键盘,在一般情况下,这是Android上React Native应用程序的大部分内容。有关详细信息,请参阅:https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft