2016-07-26 9 views
3

多くの研究の後、私はAndroid用のDimensionsライブラリが正常に動作しないことを発見しました。たとえば、 "Dimensions.get( 'window')。height"を使用するたびに、私は別の結果を得ます。React-Native Android - getRealDimensionsの使い方(次元が機能しない)

これはgitの上で文書化されています。
Dimensions.get('window').height is sometimes wrong on Android

ソリューションは、上記のgitリンク上で言及されているとして「getRealDimensions」ライブラリを使用することです。

これはthe link to the 'getRealDimensions'ですが、Javaで書かれており、反応のネイティブなアンドロイドプロジェクトにどのように実装するかわかりません。

概要
は、どのように私は私の反応、ネイティブのAndroidプロジェクトに「getRealDimensions」ライブラリを実装することができますか?

ありがとうございました。

+0

これは有望に見えます:https://github.com/jaysoo/react-native-extra-ディメンション - アンドロイド –

+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以上のReact-Nativeバージョンでは機能しませんでした。

BelinChungと呼ばれる人は、 'react-native-extra-dimensions-android' gitリポジトリをフォークして問題を修正しました。

この

は==>( https://github.com/BelinChung/react-native-extra-dimensions-android

で何をする必要があり

は、「package.json」ファイル内で、反応-ネイティブ細胞外」のバージョン番号を交換する作業リポジトリへのリンクです - アンドロイド寸法:反応-ネイティブ余剰次元-アンドロイドを '」このような作業gitリポジトリに上記のリンクを持つ
enter image description here

は、その後アンインストール':

npm uninstall react-native-extra-dimensions-android 

その後再インストールパッケージ:

npm install 

ライブラリは現在動作しています!

+0

これは私のために働いています。 MainActivity.javaの代わりにMainApplication.javaにパッケージを登録する必要があることに注意してください。 – igorrmotta

+0

多くのテストの後、実際には機能しません。これは、RN 0.32 – igorrmotta

+0

の寸法と同じ値を返します。それは今でも私にとってはうまくいきます... – Larney

0

同じ問題があった場合は、毎回適切な幅と高さを与えるビューonlayoutコールバックから正しいサイズのReduxストアを更新し、ビューを再レンダリングしてみましょう必要に応じて。しかし、最新の0.49.0ネイティブでこの問題を見ていない。

0

この問題でまだ苦労している人には、私が与えることができる小さな洞察があります。

最初にAPI反応ネイティブ(0.54)はAndroidで安定しているようですが、Dimensions.get('window')への呼び出しは毎回同じ値を返します(少なくとも私が見たものから)。 Androidの場合、heightはステータスバー(Wi-Fiアイコンと通知のある画面の上部にあるバー)のある画面です。

第2に、ソフトメニューバーなしで画面の高さのみを取得する場合は、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

乾杯

関連する問題