如何在react-native中避免使用android键盘的建议
我正在努力解决android中的键盘问题,当我想在文本输入中键入任何东西时它会在键盘上显示一些建议,我不想要那些建议,任何人都可以帮助我如何避免这些建议.
任何帮助非常感谢,上面的图片来自nexus 6. <TextInput style={styles.TextInput} value={this.state.currentWord} onChangeText={(text) => this.setState({currentWord:text.trim()})} placeholder="Type Your word here" autoCapitalize='characters' autoCorrect={this.state.autoCorrect} autoFocus={this.state.autoFocus}/> 在状态中,我声明autoCorrect为false
当使用autoComplete =“false”时,React native将底层本机android输入类型设置为TYPE_TEXT_FLAG_NO_SUGGESTIONS并清除TYPE_TEXT_FLAG_AUTO_CORRECT,有效地告诉系统不提供任何建议(参见
source code).这是根据
Android reference guides禁用文本建议的推荐方法.
问题是看起来某些(或许多?)HTC设备不遵守此设置.根据我的研究,似乎一些三星设备可能也不支持这一点.可以合理地假设其他制造商不会尊重这种设置 – 这很糟糕.这是Android的一个大问题 – 不知何故他们没有向微软学习 – 那些肮脏的制造商会破坏你产品的可靠性,而且需要数年(大约十年)才能开始消除损害< / rant> ;. (注意:我是Android粉丝). 根据Daniels的回答,似乎有人设置文本类型成功使用TYPE_TEXT_VARIATION_FILTER – 告诉设备您的输入正用于过滤项目列表.让我们尝试修改现有的文本输入并查看它是否有效 – 然后你可以根据需要构建我们自己的文本输入: [react-native]/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java >在第378行附近,您将找到一个名为setAutoCorrect的方法 – 将其更新为以下内容: public void setAutoCorrect(ReactEditText view,@Nullable Boolean autoCorrect) { // clear auto correct flags,set SUGGESTIONS or NO_SUGGESTIONS depending on value updateStagedInputTypeFlag( view,InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_FILTER,autoCorrect != null ? (autoCorrect.booleanValue() ? InputType.TYPE_TEXT_FLAG_AUTO_CORRECT : (InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_FILTER)) : 0); } >构建您的应用并进行测试.如果它不起作用,请尝试删除InputType的两个实例.TYPE_TEXT_FLAG_NO_SUGGESTIONS | (包括管道)从上面的代码中再试一次.如果这不起作用,我认为你运气不好. 更新:进一步沿着兔子洞,你也可以尝试设置TYPE_TEXT_VARIATION_VISIBLE_PASSWORD.所以这里是厨房水槽 – 我假设您可以很好地阅读代码以使用不同的输入类型组合: public void setAutoCorrect(ReactEditText view,InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD,autoCorrect != null ? (autoCorrect.booleanValue() ? InputType.TYPE_TEXT_FLAG_AUTO_CORRECT : (InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)) : 0); } 有助于理解updateStagedInputTypeFlag的方法签名如下: updateStagedInputTypeFlag([view],[flagsToUnset],[flagsToSet]); 更新2:你可以使用很多“输入类型”标志,see a full list here.随意尝试别人 – 你可能偶然发现一个有效的标志.您应该能够修改上面第一次更新的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c# – 这个不可变的结构应该是可变类吗?
- 使用C#给PDF文档添加注释的实现代码
- 如何在XML中使用自定义Animation动画类
- react 最近很火,翻出一篇旧文,和大家分享一下。
- c# – 确定在执行ContextMenu MenuItem时在ListView中单击了
- _sqlite.so: undefined symbol: sqlite3_stmt_readonly 问题
- ruby-on-rails – Rails 4 – 如何在活动记录查询中给别的名
- React学习笔记6:使用react-redux更好的组织react和redux
- 如何在webpack reactjs中使用环境变量?
- c – 在Qt应用程序菜单栏的主菜单中添加和本地化菜单项