这是Android的本机问题。

重点关注TextInput时如何处理Android中的后退按钮?
如果将TextInput设为焦点,则BackHandler.addEventListener('hardwareBackPress'. () => {})不会捕获任何事件。它会自动关闭键盘。

(实际上,我想要实现的是在按下“后退”按钮并关闭键盘时删除光标)

您可以玩this世博会小吃来了解我在说什么:

最佳答案

我相信这是正确的行为,但是要做出所需的操作,您可能会发现键盘本身隐藏了,而不是使用Keyboard(位于https://facebook.github.io/react-native/docs/keyboard的文档)

import * as React from 'react';
import { Keyboard } from 'react-native';

class MyComponent extends React.Component {
  componentDidMount() {
      this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.keyboardDidHide);
  }

  componentWillUnmount() {
    this.keyboardDidHideListener.remove();
  }

  keyboardDidHide = () => {
      this.input.blur();
  };

    //Rest of component...

}


与使用TextInput上的onKeyPress事件相比,我更喜欢这种方法,因为onKeyPress不会读取硬件键盘的后退键,因此,如果用户使用的设备带有硬件后退按钮(例如某些Android设备),则onKeyPress将无法工作,这将提供更一致的体验。

07-28 06:08