有没有办法保持键盘打开,即使输入失去焦点/防止模糊React Native?

时间:2015-11-19 08:03:46

标签: react-native

我正在努力达到与原生“笔记”应用相同的效果。基本上,我有一个文本输入,覆盖95%的屏幕,我在底部有一个小按钮。点击按钮一次应触发按钮的onPress事件。相反,点击只会模糊文本输入,我必须再次点击按钮才能触发它onPress事件。

我还想知道即使输入模糊,如何强制键盘保持打开状态。

感谢。

2 个答案:

答案 0 :(得分:1)

这个问题的一些解决方法已发布在Github上(我认为你也发布了这个问题)。

为了帮助遇到此问题的其他人,您可以在此处找到完整的讨论:

https://github.com/facebook/react-native/issues/4229

在我的情况下,问题是由<ScrollView/>包装我的输入和提交按钮引起的。

将以下属性添加到ScrollView使我可以提交,但滚动仍然会解除键盘。

    <ScrollView
        keyboardShouldPersistTaps={true}
        keyboardDismissMode='on-drag'
        ref = 'scrollView'
        automaticallyAdjustContentInsets={false}
        horizontal={false}
        style={styles.scrollView}>

        {pagecontent}
        ...
    </ScrollView>

答案 1 :(得分:1)

任何ScrollView都会关闭键盘。 如果您使用嵌套元素,请不要忘记将属性添加到父scrollView keyboardShouldPersistTaps =“always”。并且在提交结束时,为键盘添加 blurOnSubmit = {false} 时不会闪烁。

<ScrollView keyboardShouldPersistTaps="handled">    

    <ScrollView keyboardShouldPersistTaps="always">
      <TextInput           
        placeholder="First field"
        returnKeyType="next"
        blurOnSubmit={false}
        onSubmitEditing={() => {
          this.textInput.focus();
        }}
      />

      <TxtInput
        placeholder="Second"
        getRef={(e) => {
          this.textInput = e;
        }}
        returnKeyType="done"
      />
    </ScrollView>

</ScrollView>

在RN v 0.55.3中工作