在 Native Base 上打开键盘时如何避免双击?

Posted

技术标签:

【中文标题】在 Native Base 上打开键盘时如何避免双击?【英文标题】:How to avoid double tap when keyboard is open on Native Base? 【发布时间】:2017-11-25 19:55:32 【问题描述】:

这是关于 React Native 应用程序的 Native Base 框架的问题:

想象一个订阅屏幕; 1 个文本输入和一个订阅按钮;

输入电子邮件地址后,我想点击订阅按钮,但我的第一次点击只会关闭键盘,我需要再次点击才能按下按钮。如何避免这种情况?我的预期行为是第一次点击是按下按钮。 (据我所知,这是 组件周围的东西,但我不确定。)

(我已经在本地厨房水槽应用程序上检查过这个问题,同样的问题也发生在那里。只需转到:“表单和输入”部分并查看“固定标签”)

【问题讨论】:

您可能需要检查this。这个问题和你的不一样,但它可能会给你一些想法。 还有用 NativeBase 的 InputInputGroup 组件代替 RN 的 TextInput 怎么样? @milkersarac 感谢 cmets,但我使用了一些自定义文本输入,这就是原因,但我接受的答案解决了问题。 很高兴,太好了! 【参考方案1】:

将此作为道具传递给内容组件。

< Content keyboardShouldPersistTaps='always'>

【讨论】:

太棒了,这很有效(虽然我还没有经历过影响)非常感谢!我用谷歌搜索了很多! 在我的情况下,我需要将它添加到 flatlist 组件中【参考方案2】:

如果您使用&lt; Content keyboardShouldPersistTaps='always'&gt;,则在选择按钮后或在输入字段外点击时,键盘不会消失。为确保在您在输入字段外点击时键盘消失,请使用

< Content keyboardShouldPersistTaps='handled'>

但是,如果您选择一个按钮(而不是屏幕的空白部分),即使该按钮的 onPress 事件将被触发,键盘也不会消失。为了使键盘在按下按钮后消失,按钮的 onPress 处理程序应该调用

Keyboard.dismiss()

不要忘记包含导入语句:

import  Keyboard  from 'react-native';

更多详情请见https://facebook.github.io/react-native/docs/scrollview.html#keyboardshouldpersisttaps

【讨论】:

【参考方案3】:

keyboardShouldPersistTaps 这个属性现在存在于 ScrollView 中。

<ScrollView keyboardShouldPersistTaps="always">
     ..content or component
</ScrollView>

更多详情请查看官方文档

https://facebook.github.io/react-native/docs/scrollview#keyboardshouldpersisttaps

【讨论】:

以上是关于在 Native Base 上打开键盘时如何避免双击?的主要内容,如果未能解决你的问题,请参考以下文章

组件挂载时如何在 React Native 中自动打开键盘?

在 react-native 中打开键盘时视图正在上升

如何在 React Native 中检测键盘何时打开或关闭

如何防止在android中打开键盘时反应本机模式向上移动?

React-native:打开表情符号键盘

React Native - 使背景图像避免使用键盘