Dimensions.get('screen').width
は、iPad simulator
の場合、320
の幅を返しています。Dimensions.get( 'screen')。幅がiPadシミュレータで間違った幅を返しますか?
Iシミュレータに使用しようと計算されたデバイスに関係なく、それは 320×480画面とウィンドウ解像度
を返します。
私はここで何か間違っているのですか?これはシミュレータで正しく機能しませんか?
Dimensions.get('screen').width
は、iPad simulator
の場合、320
の幅を返しています。Dimensions.get( 'screen')。幅がiPadシミュレータで間違った幅を返しますか?
Iシミュレータに使用しようと計算されたデバイスに関係なく、それは 320×480画面とウィンドウ解像度
を返します。
私はここで何か間違っているのですか?これはシミュレータで正しく機能しませんか?
@Dani Akashのおかげで、私がここでやろうとしているところでうまくいくソリューションが見つけられたと思います。 React Native: How to Determine if Device is iPhone or iPad
アスペクト比を使用してタブレットであるかどうかを判断することを提案しました。
import { Dimensions } from 'react-native';
const {height, width} = Dimensions.get('window');
const aspectRatio = height/width;
if(aspectRatio>1.6) {
// Code for Iphone
}
else {
// Code for Ipad
}
反応固有幅の単位&高さがで、通常のピクセルではないです。
なぜ使用density-independent pixels?
スマートフォンデバイスのサイズが多すぎます。コンポーネントは画面の大きさに関係なく同じに見えるはずです。この方法は、 関係なく、常に画面 寸法の、正確に同じサイズで描画する必要のあるコンポーネントに共通の寸法を設定
。
ほとんどの場合、Layout with Flexboxを使用できます。
は、私は、これは事実の後で知っているが、あなたはまた、isTablet()メソッドを持っているreact-native-device-infoを、使用することができます。あなたが使用しているRNのバージョンはわかりませんが、Dimensions.get( 'window')は正常に動作するはずです。問題はあなたが 'window'ではなく 'screen'を使っていたかもしれないと思います。
私はipadデバイス上で自分のコードをテストし、 'Dimensions.get(" window ")'(screen btwと同じ結果)を使って320 x 480を取得します。 – AlainIb
私がしようとしているのは、ユーザーがiPhoneまたはiPadを使用しているかどうかに応じてレイアウトを反応させることです。デバイスに応じて列から行へのフレックスの方向を変更するだけで、よりフィットします。これを行う方法ではないでしょうか? – Oliver84