Wie wird die vom CoordinatorLayout gesteuerte Position der Symbolleiste zurückgesetzt?

Die App, an der ich arbeite, besteht aus einer Navigationsleiste, die in einer Aktivität implementiert ist. Das Aktivitätslayout sieht wie folgt aus:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinator"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <include
            android:id="@+id/appbar"
            layout="@layout/appbar" />

    </android.support.design.widget.CoordinatorLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/header_drawer"
        app:menu="@menu/menu_nav">
    </android.support.design.widget.NavigationView>

</android.support.v4.widget.DrawerLayout>

</FrameLayout>

Dies ist ein sehr verbreitetes Muster. Nur das Fragment im Container-Layout ändert sich häufig.

Wenn eines der Fragmente über ein Bildlaufelement verfügt, erstellt das CoordinatorLayout beim Bildlauf problemlos Positionsübersetzungen, einschließlich der Symbolleiste / AppBarLayout.

as eigentliche Problem hierbei ist, dass die Position der Symbolleiste beim Ersetzen des Fragments unverändert bleibt, d. H., Wenn die Symbolleiste ausgeblendet ist, bleibt sie so, wie es nicht beabsichtigt is

Ergebnis ist das:

Dies

Klemmt

Wie kann man die Position der Symbolleiste für diesen Fall zurücksetzen?

BEARBEITEN Ein Fehler ist wahrscheinlich, der AppBarLayout Offset Change Listener wird nur beim Neustart der App aufgerufen (Zurück-Taste drücken und App öffnen) und hört nach einer intensiven Aktion auf, erneut aufgerufen zu werden.

Antworten auf die Frage(14)

Ihre Antwort auf die Frage