2017-09-21 11 views
0

デバイスのローテーションに応じてアクティビティの設定を行いたいとします。onConfigurationChangedがトリガーされていません

私は法の下に使用して回転を扱う:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
..... 
} 

それは肖像画から風景に回転動作します。コールバックトリガとアプリの向きが変更されました。

しかし、ランドスケープのときにデバイスの周りを回転することはありません。しかし、アプリのオリエンテーションが変更されます。

以下の行をマニフェストに追加しました。

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

アンドロイド:configChangesは= "オリエンテーション|画面サイズ" 私はそれを処理することができますどのように

答えて

0
android:configChanges="orientation|keyboardHidden|screenSize" rather than android:configChanges="orientation" 

あなたはどこにでも

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

を呼び出していないことを確認してください。これにより、onConfigurationChange()は発生しません。

また、manifestandroid:screenOrientationを使用していないことを確認してください。ポートレートモードにあなたのActivityの向きを強制的に

や、JavaコードでsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

、あなたは向きの変更を受信するための候補ではないです。

したがって、解決方法は特定のモードではsetRequestOrientationではありません。代わりにSCREEN_ORIENTATION_SENSORを使用してください。

照会:Android onConfigurationChanged not being called

関連する問題