2016-07-26 84 views
3

多的研究,我发现,像它应该为Android维度库不工作后。例如,每次使用“Dimensions.get('window')。height”时,我都会得到不同的结果。阵营,Android本地 - 如何使用getRealDimensions(尺寸不工作)

这是记载在GIT中:
Dimensions.get('window').height is sometimes wrong on Android

的解决方案是如git的链路上上面提到用“getRealDimensions”库。

这是the link to the 'getRealDimensions'但它是用Java编写的,我不知道如何落实到我的反应,原生的Android项目。

摘要
我怎样才能实现“getRealDimensions”库到我的反应,原生的Android项目?

谢谢。

+0

这看起来很有希望:https://github.com/jaysoo/react-native-extra-尺寸-Android –

+0

它的确如此。我会看看并回复你。谢谢 – Larney

+0

@Tushar Khatiwada我一直试图让它工作一段时间,但没有运气。如果你有能力帮助你介意看看这个[我在Git上创建的问题](https://github.com/jaysoo/react-native-extra-dimensions-android/issues/13)谢谢。 – Larney

回答

2

对于有同样的问题的人,这里是解决方案。真正的解决方案是react-native-extra-dimensions-android库。

的问题是,react-native-extra-dimensions-android库不与之反应,原生版本0.29以上的工作。

一个家伙叫BelinChung分叉的“反应,本机的额外维度-Android的git仓库和固定的问题。

这是链接到工作仓库==>(https://github.com/BelinChung/react-native-extra-dimensions-android

你所要做的就是,“的package.json”文件中,更换的“反应母语 - 预算外的版本号尺寸,Android的使用上面的链接工作的Git仓库这样的:
enter image description here

然后卸载'反应,原生额外维度,Android的:

npm uninstall react-native-extra-dimensions-android 

然后再安装软件包:

npm install 

该库现在工作!

+0

这是为我工作。请注意,您必须在MainApplication.java而不是MainActivity.java中注册软件包。 – igorrmotta

+0

经过多次测试后,它实际上不起作用。它返回与RN的尺寸相同的值0.32 – igorrmotta

+0

它仍然适用于我至今... – Larney

0

有同样的问题,决定通过在视图的onlayout回调中更新正确的维度来修复Redux存储,这似乎在每次都给出正确的宽度和高度,并让REDX重新呈现视图如果需要的话。尽管在最新的反应原生0.49.0中没有看到这个问题。

0

对于这个问题还在挣扎,这里是一个小的洞察力我可以给。

首先,API react-native(0.54)对于Android来说似乎很稳定,每次调用Dimensions.get('window')时都会返回相同的值(至少从我看到的情况来看)。在Android上,此调用返回的height是带有状态栏的屏幕(即屏幕顶部带有无线图标和通知的栏)。

其次,如果您只想获取没有软菜单栏的屏幕高度,只需调用StatusBar.currentHeight并从Dimensions.get('window').height给出的高度减去此值即可。

这种方法相当简单,并避免依赖于其他包(即使react-native-extra-dimensions-android真的很好)。

最后,如果你需要在屏幕的总大小看看Dimensions.get('screen'),看到What's the difference between 'window' and 'screen' in the Dimensions API

干杯