Como redefinir a posição da barra de ferramentas controlada pelo CoordinatorLayout?

O aplicativo em que estou trabalhando consiste em uma gaveta de navegação que é implementada em uma atividade. O layout da atividade é o seguinte:

<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>

Esse é um padrão muito comum, a única coisa que muda com frequência é o fragmento dentro do layout do contêiner.

Se qualquer um dos fragmentos tiver um elemento de rolagem, durante a rolagem, o CoordinatorLayout fará alegremente traduções de posição, incluindo a Barra de Ferramentas / AppBarLayout.

O verdadeiro problema aqui é que, quando o fragmento é substituído, a posição da barra de ferramentas permanece a mesma, ou seja, se a barra de ferramentas estiver oculta, ela permanecerá assim que não se destina.

O resultado é este:

Este:

Fica preso:

Como alguém pode redefinir a posição da barra de ferramentas para este caso?

EDITAR: É provável que haja um erro, o ouvinte de alterações de deslocamento do AppBarLayout é chamado apenas ao reiniciar o aplicativo (pressione o botão Voltar e abra o aplicativo) e para de ser chamado novamente após um intenso fling.

questionAnswers(7)

yourAnswerToTheQuestion