这是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将无法工作,这将提供更一致的体验。