react native 中 Demensions的坑

简单描述下碰到的问题:Demensions.get('window').height,一般拿来获取屏幕高度的。但是在小米mix3上面(其他安卓机型可能也会有)无论底部的虚拟物理键盘显示与否(底部的返回键,home键),高度都是全屏高度减去虚拟物理键盘高度的值。

这样会出现一个问题,当在手机设置中关闭了虚拟物理键盘的显示,那么Flatlist设置的高度就不会撑满一直到手机屏幕底部,原来的虚拟物理键盘的位置会是一片空白的区域,就是说还是保留了虚拟物理键盘的位置,这样在视觉上是很怪异的。

解决方法1:viewport下的最外层view 或者flatList 尽量避免写死高度,高度可以有 100% 或者直接不设高度,由内容来自动撑开。tips:高度设100%,该元素自身或者兄弟元素不能有相对定位

解决方法2: 

https://github.com/Sunhat/react-native-extra-dimensions-android 该插件支持获取准确高度,但是需要native中的NativeModules支持对应的模块,不然会报错。

原文地址:https://www.cnblogs.com/hjj2ldq/p/11649529.html