React Native如何防止键盘在文本提交时关闭?

7

我希望能够在键盘上按下回车键,保持焦点在TextInput上,并保持键盘打开。如何实现?

关于ScrollView的实现答案是指触摸TextInput外的按钮,而不是实际按下键盘上的返回键。


你能提供一些代码吗? - Subramanya Chakravarthy
1个回答

22

在上实现此功能的方法是设置blurOnSubmit={false},然后使用onSubmitEditing作为提交处理程序,而不是使用onEndEditing

  onTextChange(input) {
    this.setState({ value: input })
  }

  submitValue() {
    // Do things with the value 
    ...
    // Then reset it so the TextInput can be reused
    this.setState({ value: '' })
  }

    <TextInput
  blurOnSubmit={false}
  style={styles.inputBox}
  onChangeText={input => this.onTextChange(input)}
  onSubmitEditing={() => this.submitValue(this.state.value)}
  value={this.state.value}
   />

按下回车键后,this.setState({ value: '' }) 会清除 TextInput 中的文本。


1
你能解释一下 blurOnSubmit 是什么意思吗?blur 和不隐藏键盘有什么关系吗? 它能实现功能,但现在看起来像是某种黑科技。 - likern
聚焦和模糊效果彼此相反,因此当输入框聚焦时,即用户点击它时键盘会弹出。当用户点击完成或点击其他地方时,输入框则失去焦点,触发键盘关闭事件。通过在提交时禁止失去焦点,我们强制保持输入框的焦点,这就是为什么键盘不会被关闭或收起的原因。 - Rajan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接