Définir le fragment sur plein écran lors de l'utilisation du composant de navigation - Android

Aug 20 2020

J'ai récemment converti mon application en architecture à activité unique et j'ai essayé de définir le fragment particulier en plein écran. Le code plein écran standard pour l'activité ne fonctionne pas pour les fragments

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;

J'ai trouvé cet ensemble Android en plein écran à partir d'un fragment . Mais en le définissant sur FLAG_LAYOUT_NO_LIMITS, le PagerSnapHelper du fragment saute lors du basculement entre FLAG_LAYOUT_NO_LIMITS et de sa révocation.

Ma question est donc la suivante: existe-t-il un autre moyen de définir le fragment en plein écran sans utiliser FLAG_LAYOUT_NO_LIMITS.

Réponses

3 ianhanniballake Aug 21 2020 at 04:55

Vous ne devriez jamais avoir besoin d'utiliser FLAG_LAYOUT_NO_LIMITS, ni appliquer fitsSystemWindows="true"globalement à votre couche d'activité - c'est ce qui empêcherait votre fragment de passer en plein écran. Au lieu de cela, ajoutez uniquement fitsSystemWindowsles fragments / composants individuels qui, autrement, chevaucheraient les barres d'état / système. Cela garantirait que votre fragment plein écran serait capable de prendre la taille réelle et de ne pas être inséré à partir des bords.