ich ein seltsames Problem mit dem neuen Android Design Support Librar angetroffen (http://android-developers.blogspot.com.ar/2015/05/android-design-support-library.html). Wenn ich zusätzlichen Inhalt (z. B. ein LinearLayout) in einem AppBarLayout zusammen mit der ToolBar platziere und die Sichtbarkeit dieses Inhalts umschalte, wird beim Umschalten von Fragmenten oben im Fragment-Inhalt ein Totraum angezeigt.Makel Sichtbarkeit AppBarLayout Ansichten verursachen Abstand Ausgaben für geladene Fragmente
Es scheint, dass AppBarLayout die übergeordnete CoordinatorLayout nicht korrekt ändert, wenn die Sichtbarkeit des Inhalts umgeschaltet wird. Ich habe mein CoordinatorLayout in das DrawerLayout eingepackt. Ich möchte die Sichtbarkeit des zusätzlichen LinearLayouts im AppBarLayout abhängig vom angezeigten Fragment ändern.
Hier ist meine main.xml-Datei für die MainActivity:
<android.support.v4.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.CoordinatorLayout
android:layout_height="match_parent"
android:layout_width="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical"">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:text="Hello"/>
</LinearLayout>
</android.support.design.widget.AppBarLayout>
<FrameLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/drawer"/>
</android.support.v4.widget.DrawerLayout>
Dies ist ein Problem mit der Design-Support-Bibliothek. Es wurde gemeldet und markiert als eine zukünftige Version, sorry, ich konnte den Link zu dem Problem nicht finden – Aashir
Es muss eine Möglichkeit geben, eine Neuzeichnung zu erzwingen. Wenn Sie die Ansicht drehen, ist der Abstand festgelegt. Klingt nach einer Wettlaufbedingung. Vielleicht ist es auch möglich, das AppBarLayout in das Fragment zu verschieben, um das Problem zu vermeiden. Ich möchte den ursprünglichen Fehlerbericht sehen, um zu sehen, ob er eine Fehlerbehebung bietet. – ThanksMister
Eine mögliche Lösung, die zu funktionieren scheint, ist das Hinzufügen von allem im CoordinatorLayout zum Fragment und das Hinzufügen/Entfernen von Inhalt aus dem AppBarLayout, wie für jedes Fragment erforderlich. Sie müssen einen Verweis auf die Symbolleiste erstellen, um das Hamburgermenü hinzuzufügen, Menüelemente hinzuzufügen oder den Titel zu aktualisieren. – ThanksMister