1

電話が縦向きの場合、フラグメントにメニューバー (設定のショートカットなど) を表示する必要がありますが、横向きの場合はフルスクリーンが必要なアプリを作成しています。

したがって、2 つのフラグメントを管理する 1 つのアクティビティがあり、ポートレートの場合はフラグメント 1 を呼び出し、ランドスケープの場合はフラグメント 2 を呼び出します。フラグメント 2 のみをフルスクリーンにする必要があります。

出来ますか?

4

2 に答える 2

3

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();
    }
}
于 2014-05-01T22:29:04.763 に答える
0

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"
于 2014-05-01T22:30:26.027 に答える