電話が縦向きの場合、フラグメントにメニューバー (設定のショートカットなど) を表示する必要がありますが、横向きの場合はフルスクリーンが必要なアプリを作成しています。
したがって、2 つのフラグメントを管理する 1 つのアクティビティがあり、ポートレートの場合はフラグメント 1 を呼び出し、ランドスケープの場合はフラグメント 2 を呼び出します。フラグメント 2 のみをフルスクリーンにする必要があります。
出来ますか?
電話が縦向きの場合、フラグメントにメニューバー (設定のショートカットなど) を表示する必要がありますが、横向きの場合はフルスクリーンが必要なアプリを作成しています。
したがって、2 つのフラグメントを管理する 1 つのアクティビティがあり、ポートレートの場合はフラグメント 1 を呼び出し、ランドスケープの場合はフラグメント 2 を呼び出します。フラグメント 2 のみをフルスクリーンにする必要があります。
出来ますか?
2 つのフラグメントは必要ありません。android:configChanges="orientation|screenSize"
マニフェスト ファイルのアクティビティに追加し、アクティビティに次を追加するだけです。
private int oldOptions;
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
{
oldOptions = getWindow().getDecorView().getSystemUiVisibility();
int newOptions = oldOptions;
newOptions &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
newOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
newOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
newOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE;
newOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
getWindow().getDecorView().setSystemUiVisibility(newOptions);
getActionBar().hide();
}
else
{
getWindow().getDecorView().setSystemUiVisibility(oldOptions);
getActionBar().show();
}
}
onConfigurationChanged
アクションバーをオーバーライドして管理する必要がありますActivity
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
getActionBar().show();
}
else {
getActionBar().hide();
}
}
configChanges
このためのマニフェストにも設定Activity
android:configChanges="orientation|screenSize"