Bei Verwendung des Immersiven Modus mit Dialogen, nav. Bar erscheint wieder und ändert mein Layout

8

Ich verwende den Immersive-Modus in meiner App, wenn er unter Android 4.4+ ausgeführt wird. ( Ссылка )

Meine Aktivität wird tatsächlich im Vollbildmodus angezeigt, und ich arbeite an der Lautstärketaste, indem ich setOnSystemUiVisibilityChangeListener drücke. Ich habe auch ähnlichen Code, um Dialoge in Immersive-Modus zu setzen.

Wenn jedoch ein Dialog angezeigt wird, wird das Navigationsfeld angezeigt. Balken springen auf den Bildschirm und ziehen sich dann sofort zurück. Wenn der Dialog geschlossen wird, ist es noch schlimmer - das Nav. Balken springen und ändern die Größe der Aktivität dahinter.

Das Folgende ist meine Klasse für die Unterstützung des immersiven Modus. Es wird einfach bei onResume jeder Aktivität aufgerufen, und beim Erstellen jedes Dialogs wird auch eine separate Funktion aufgerufen.

Habe ich eine Flagge oder einen Rückruf vermisst oder handelt es sich um ein bekanntes Android-Problem?

%Vor%     
SirKnigget 22.03.2014, 12:34
quelle

1 Antwort

4

Von der Google API: Es empfiehlt sich, andere System-UI-Flags (z. B. SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION und SYSTEM_UI_FLAG_LAYOUT_STABLE) einzuschließen, damit die Größe des Inhalts nicht verändert wird, wenn die Systemleisten ein- und ausgeblendet werden.

Sie sollten außerdem sicherstellen, dass die Aktionsleiste und andere Benutzeroberflächensteuerelemente gleichzeitig ausgeblendet sind. Dieses Snippet zeigt, wie die Status- und Navigationsleisten ein- und ausgeblendet werden, ohne den Inhalt zu ändern:

%Vor%

Hoffe, das hilft.

    
user2809845 04.04.2014 17:53
quelle