各种键盘高度

时间:2020-03-30 09:14:28

标签: react-native

是否有一种通用的方法来获取键盘高度并为View输入底边距?

我想要这种情况:

  • 关闭键盘后,“视图”位于屏幕底部
  • 打开键盘后,“视图”位于键盘上方

我有一个理论上可以获取键盘高度的函数

const useKeyboard = (): [number] => {
    const [keyboardHeight, setKeyboardHeight] = useState(0);

    function onKeyboardDidShow(e: KeyboardEvent): void {
        setKeyboardHeight(e.endCoordinates.height);
    }

    function onKeyboardDidHide(): void {
        setKeyboardHeight(0);
    }

    useLayoutEffect(() => {
        Keyboard.addListener('keyboardDidShow', onKeyboardDidShow);
        Keyboard.addListener('keyboardDidHide', onKeyboardDidHide);
        return (): void => {
            Keyboard.removeListener('keyboardDidShow', onKeyboardDidShow);
            Keyboard.removeListener('keyboardDidHide', onKeyboardDidHide);
        };
    }, []);

    return [keyboardHeight];
};

此片段获取y轴上的坐标

setKeyboardHeight(e.endCoordinates.height)

问题出现在以下时间:

  • 有些手机具有图片导航栏,而有些则没有

enter image description here

当我使用Android模拟器,并且在实际设备上安装应用程序时,上面的方法效果很好,底部已经有一个空白栏

它可以在某些手机上使用,而不能在其他手机上使用

有什么方法可以将我的视图直接设置在键盘上方,或者在屏幕最底部关闭键盘时将其设置为视图?

0 个答案:

没有答案
相关问题