2016-07-26 41 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

乾杯