デバイスに応じて2つの異なる向きモードが必要です。デバイス画面が特大の場合、向きはLANDSCAPEであり、デバイス画面が小さい場合、向きはPORTRAITである必要があります。
私は次のチェックを行いました:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set orientation for tablets and phones
if (isXLarge()) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
setContentView(R.layout.activity_main);
}
アクティビティのマニフェストエントリは次のとおりです。
<activity
android:configChanges="keyboardHidden"
android:launchMode="singleTop"
android:theme="@android:style/Theme.NoTitleBar"
android:name=".MyActivity"/>
携帯電話では正常に動作しますが、Android3.2を搭載したMotorolaXoomタブレットでは正しく動作しません。
タブレットが物理的にポートレートモードで保持されていると仮定すると、次の一連のアクションが発生します。
- アクティビティはポートレートモードで作成および表示されます-これは0.5秒間視覚的に表示されます
- アクティビティは破棄され、ランドスケープモードで再作成されます。
問題は、タブレットが現在物理的に保持されている方向に常に中間の遷移があり、その後、アクティビティが目的の方向で再作成されることです。
問題に関する情報やアドバイスをありがとうございます。詳細が必要な場合はお知らせください。
メソッドisXLarge()は、表示のタイプを正しく返します