React-Native Android - 如何使用 getRealDimensions(尺寸不工作)
React-Native Android - How to use getRealDimensions (Dimensions is not working)
经过大量研究,我发现 Android 的 Dimensions 库无法正常工作。例如,每次我使用 "Dimensions.get('window').height",我都会得到不同的结果。
这记录在 git:
Dimensions.get('window').height is sometimes wrong on Android
解决方案是使用上面 git link 中提到的 "getRealDimensions" 库。
这是 the link to the 'getRealDimensions' 但它是用 java 编写的,我不知道如何将它实现到我的 react-native android 项目中。
总结
如何将 'getRealDimensions' 库实现到我的 react-native android 项目中?
谢谢。
对于遇到相同问题的任何人,这里是解决方案。真正的解决方案是 react-native-extra-dimensions-android 库。
该项目之前由 GitHub 用户 Jaysoo, but is now maintained by Github user Sunhat
维护
只需安装
npm install react-native-extra-dimensions-android --save
您可能需要重新编译项目
图书馆正在运作!
有同样的问题,决定通过在视图 onlayout 回调中使用正确的尺寸更新 Redux 存储来解决这个问题,这似乎每次都给出正确的宽度和高度,并让 redux 重新渲染如果需要的话。虽然在最新的 react native 0.49.0 中没有看到这个问题。
对于那些仍在为这个问题苦苦挣扎的人,我可以提供一些小见解。
首先 API react-native (0.54) 对于 Android 似乎是稳定的,每次调用 Dimensions.get('window')
returns 相同的值(至少从我所看到的)。不过,在 Android 上,此调用返回的 height
是带有状态栏的屏幕(即屏幕顶部带有 wifi 图标和通知的栏)。
其次,如果您只想获得没有软菜单栏的屏幕高度,只需调用 StatusBar.currentHeight
并从 Dimensions.get('window').height
给定的高度中减去该值。
这个方法相当简单并且避免了对另一个包的依赖(尽管 react-native-extra-dimensions-android
真的很好)。
最后,如果您需要屏幕的总大小,请查看 Dimensions.get('screen')
,请参阅
干杯
经过大量研究,我发现 Android 的 Dimensions 库无法正常工作。例如,每次我使用 "Dimensions.get('window').height",我都会得到不同的结果。
这记录在 git:
Dimensions.get('window').height is sometimes wrong on Android
解决方案是使用上面 git link 中提到的 "getRealDimensions" 库。
这是 the link to the 'getRealDimensions' 但它是用 java 编写的,我不知道如何将它实现到我的 react-native android 项目中。
总结
如何将 'getRealDimensions' 库实现到我的 react-native android 项目中?
谢谢。
对于遇到相同问题的任何人,这里是解决方案。真正的解决方案是 react-native-extra-dimensions-android 库。
该项目之前由 GitHub 用户 Jaysoo, but is now maintained by Github user Sunhat
维护只需安装
npm install react-native-extra-dimensions-android --save
您可能需要重新编译项目
图书馆正在运作!
有同样的问题,决定通过在视图 onlayout 回调中使用正确的尺寸更新 Redux 存储来解决这个问题,这似乎每次都给出正确的宽度和高度,并让 redux 重新渲染如果需要的话。虽然在最新的 react native 0.49.0 中没有看到这个问题。
对于那些仍在为这个问题苦苦挣扎的人,我可以提供一些小见解。
首先 API react-native (0.54) 对于 Android 似乎是稳定的,每次调用 Dimensions.get('window')
returns 相同的值(至少从我所看到的)。不过,在 Android 上,此调用返回的 height
是带有状态栏的屏幕(即屏幕顶部带有 wifi 图标和通知的栏)。
其次,如果您只想获得没有软菜单栏的屏幕高度,只需调用 StatusBar.currentHeight
并从 Dimensions.get('window').height
给定的高度中减去该值。
这个方法相当简单并且避免了对另一个包的依赖(尽管 react-native-extra-dimensions-android
真的很好)。
最后,如果您需要屏幕的总大小,请查看 Dimensions.get('screen')
,请参阅
干杯