[ Android ] フルスクリーン表示 (xml)

コード表示がいまいち上手くできない。。。ので、別のプラグイン探す。

styles.xmlを使ったフルスクリーンの一例

・Android 7.1.1

コードでするのは別記事で

フルスクリーン表示の例 いろいろな方法があると思いますが、一例として。 ■ Android 7.1.1 immersi...

1.アクションバー、ステータスバーとか非表示

タイトルバーとステータスバーを非表示にしてフルスクリーン表示する方法について説明します。

styles.xmlに追加 (name=”AppTheme”は元からあるもの)

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

</resources>

AndroidManifest.xmlを修正

android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"

これで非表示になるけど、ナビゲーションバーは消えません。

2.ナビゲーションバーを非表示

下記のどちらかをonResumeやonWindowFocusChangedに追記する。

レイアウトに対して実装するなら

findViewById(R.id.layout).setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_FULLSCREEN |
        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);

Windowに対して実装

View decor = getWindow().getDecorView();
decor.setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_FULLSCREEN |
        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);

※ フラグはAndroidのバージョンで違うので確認を(5以上ならいけるかと)

※ styles.xmlで定義時は、View.SYSTEM_UI_FLAG_FULLSCREEN無い方がいいかも?

3.ナビゲーションバーについて

2でナビゲーションバーを非表示にしても、EditTextでソフトキーボード表示や別アプリから戻ったりしたら復活しますので別途対応を。

フルスクリーン表示の例 いろいろな方法があると思いますが、一例として。 ■ Android 7.1.1 immersi...
Androidではソフトキーボードの表示、非表示イベントは用意されていないため、独自で実装する必要がある。 ・stackoverflo...