首页 文章

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

提问于
浏览
1

即使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行的代码:

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行,但同样,它没有帮助 .

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

1 回答

  • 0

    您可以通过在项目的 /android 部分的 MainActivity 上设置标志来完成此操作 .

    打开 app/src/mainAndroidManifest.xml 文件并在 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">
    

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

相关问题