如何识别键盘是打开的还是未处于react native



我有文本输入和提交按钮,我在文本输入上添加了事件"onendedding";,如果我在文本框中输入值并按下提交按钮而不结束编辑;onendedding";未按预期发射。所以我想跟踪键盘,如果键盘打开,我不允许提交按钮工作。我该如何处理?我用了";keypad.addEventListener";但它不起作用。

ANDROID注意:如果您的Manifest文件包含android:windowSoftInputMode="adjustPan",则钩子将无法在ANDROID上工作。

我用钩子做这个:

import {useEffect, useState} from 'react';
import {Keyboard} from 'react-native';
const useKeyboard = () => {
const [isKeyboardVisible, setKeyboardVisible] = useState(false);
useEffect(() => {
const keyboardDidShowListener = Keyboard.addListener(
'keyboardDidShow',
() => {
setKeyboardVisible(true);
},
);
const keyboardDidHideListener = Keyboard.addListener(
'keyboardDidHide',
() => {
setKeyboardVisible(false);
},
);
return () => {
keyboardDidHideListener.remove();
keyboardDidShowListener.remove();
};
}, []);
return isKeyboardVisible;
};
export default useKeyboard;

用法:

import React from 'react';
import {Text} from 'react-native';
import useKeyboard from './useKeyboard';
const App = () => {
const isKeyboardOpen = useKeyboard();
return isKeyboardOpen ? <Text>OPEN</Text> : <Text>CLOSE</Text>;
};