即使输入在React Native上失去焦点/防止模糊,是否有办法使键盘保持打开状态?

eya*_*l83 6 react-native

我正在尝试实现与本机“笔记”应用程序相同的效果。基本上,我的文字输入覆盖了屏幕的95%,底部有一个小按钮。轻按一次按钮应触发按钮的onPress事件。相反,点击只会使文本输入变得模糊,我必须再次点击按钮才能触发它的onPress事件。

我还想知道即使输入内容模糊也要强制键盘保持打开状态。

谢谢。

And*_*iko 7

任何 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>
Run Code Online (Sandbox Code Playgroud)

在 RN v 0.55.3 中工作


RWI*_*WIL 2

这个问题的一些解决方法已经发布在 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>
Run Code Online (Sandbox Code Playgroud)