ナビゲーションコンポーネントの使用中にフラグメントをフルスクリーンに設定-Android

Aug 20 2020

最近、アプリをシングルアクティビティアーキテクチャに変換し、特定の1つのフラグメントをフルスクリーンに設定しようとしました。アクティビティの標準のフルスクリーンコードはフラグメントでは機能しません

final int flags =
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

私はこのAndroidがフラグメントからフルスクリーンを設定しているのを見つけました。ただし、FLAG_LAYOUT_NO_LIMITSに設定すると、FLAG_LAYOUT_NO_LIMITSを切り替えて取り消すときに、フラグメント内のPagerSnapHelperがジャンプします。

だから私の質問は、FLAG_LAYOUT_NO_LIMITSを使用せずにフラグメントをフルスクリーンに設定する他の方法はありますか?

回答

3 ianhanniballake Aug 21 2020 at 04:55

を使用する必要はありませんFLAG_LAYOUT_NO_LIMITS。またfitsSystemWindows="true"、アクティビティレイヤーでグローバルに適用する必要もありません。これにより、フラグメントが全画面表示されるのを防ぐことができます。代わりに、fitsSystemWindowsステータス/システムバーとオーバーラップするフラグメント/個々のコンポーネントのみを追加します。これにより、フルスクリーンフラグメントがフルサイズを占めることができ、端からはめ込まれないようになります。