2017年の更新: {"orientation": "portrait"}
現在、このような多くの公式React Nativeガイド React Nativeアプリを構築する際にExpoを使用することを推奨しているため、既存の回答に加えて、iOSとAndroidの両方で機能するため、注目に値するExpo固有のソリューションも追加します。 XCode config、AndroidManifest.xmlなどをいじる必要なく、一度設定してください。
ビルド時の向きの設定:
Expoを使用してReact Nativeアプリを構築している場合orientation
は、app.json
ファイル内のフィールドを使用できます。次に例を示します。
{
"expo": {
"name": "My app",
"slug": "my-app",
"sdkVersion": "21.0.0",
"privacy": "public",
"orientation": "portrait"
}
}
それは次のように設定することができ"portrait"
、"landscape"
または"default"
その手段が無いオリエンテーションロックと自動回転します。
実行時の向きの設定:
次のように実行することで、実行時にその設定を上書きすることもできます。
Expo.ScreenOrientation.allow(Expo.ScreenOrientation.Orientation.LANDSCAPE);
引数は次のいずれかです。
ALL
— 4つの可能な方向すべて
ALL_BUT_UPSIDE_DOWN
—逆向きのポートレートを除くすべてが、特定のAndroidデバイスでは4方向すべてになる可能性があります。
PORTRAIT
—縦向き、特定のAndroidデバイスでは逆向きの縦向きになることもあります。
PORTRAIT_UP
—縦向きのみ。
PORTRAIT_DOWN
—逆さまの縦向きのみ。
LANDSCAPE
—横向き。
LANDSCAPE_LEFT
—左の風景のみ。
LANDSCAPE_RIGHT
—正しい風景のみ。
回転の検出:
複数の方向を許可するchange
と、Dimensions
オブジェクトのイベントをリッスンして変更を検出できます。
Dimensions.addEventListener('change', (dimensions) => {
// you get:
// dimensions.window.width
// dimensions.window.height
// dimensions.screen.width
// dimensions.screen.height
});
またはDimensions.get('window')
、次のDimensions.get('screen')
ようにいつでもディメンションを取得することもできます。
const dim = Dimensions.get('window');
// you get:
// dim.width
// dim.height
または:
const dim = Dimensions.get('screen');
// you get:
// dim.width
// dim.height
あなたがイベントに耳を傾けるとき、あなたは両方を取得window
し、screen
あなたは違っそれにアクセスする理由だように、同時に。
ドキュメンテーション:
詳細については、以下を参照してください。