2 つの表示モードを処理するアクティビティがあります。
- 通常モード : 画面は回転せず、常に縦向きモードです。
- フルスクリーン モード : 画面は縦向きまたは横向きにすることができます
2つのモードを処理するアクティビティは1つだけです:
- がフルスクリーン モードか通常モード
isFullscreen()
かを示すブール変数。Activity
changeMode()
setContentView()
現在のモードに適切な XML レイアウトを切り替えるための呼び出し- マニフェスト ファイルで
android:configChanges="screenSize|orientation"
、Activity
ハンドル構成を変更する必要があります - メソッドをオーバーライドします
onConfigurationChanged()
。
私はこれを試しました:
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (isFullscreen) {
super.onConfigurationChanged(newConfig);
} else {
super.onConfigurationChanged(newConfig);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
ただし、この場合: スクリーンはどのモードでも回転しません ( isFullscreen()
et を true に設定したフルスクリーン モードでも回転しません) 。
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (isFullscreen) {
super.onConfigurationChanged(newConfig);
} else {
}
}
でもなんか得したSuper Not Called exception
とか(ノーマルモードの場合はスーパーを呼ばないと画面が回転しないと思ってた)
そして最後に、私はこれを試しました:
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (isFullscreen) {
super.onConfigurationChanged(newConfig);
} else {
newConfig.orientation = Configuration.ORIENTATION_PORTRAIT;
super.onConfigurationChanged(newConfig);
}
}