natknąłem się na dziwny problem z nowym Androidem planowania wsparcia librar (http://android-developers.blogspot.com.ar/2015/05/android-design-support-library.html). Jeśli umieszczę dodatkową zawartość (np. LinearLayout) w AppBarLayout razem z Paskiem narzędzi i przełączę widoczność tej treści, to fragmenty przełączania będą pokazywały martwą przestrzeń u góry zawartości fragmentu.przełączając widoki widoczność AppBarLayout powoduje problemy odstępów dla załadowanych Fragmenty
Wygląda na to, że AppBarLayout nie zmienia prawidłowo rozmiaru nadrzędnego elementu CoordinatorLayout, gdy widoczność treści jest przełączana. Mam moje CoordinatorLayout zapakowane w DrawerLayout. Chcę przełączać widoczność dodatkowego LinearLayout w AppBarLayout w zależności od pokazanego fragmentu.
Oto mój plik main.xml za główną działalność:
<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>
Jest to problem związany z biblioteką wsparcia projektu. Zostało zgłoszone i oznaczone jako przyszłe wydanie, przepraszam, nie mogłem znaleźć linku do problemu. – Aashir
Musi istnieć sposób na wymuszenie przerysowania. Po obróceniu widoku odstępy są stałe. Brzmi jak warunek wyścigu. A może jest możliwe przeniesienie AppBarLayout do Fragmentu, aby uniknąć problemu. Chciałbym zobaczyć oryginalny raport o błędzie, aby sprawdzić, czy oferuje on poprawkę. – ThanksMister
Możliwym rozwiązaniem, które wydaje się działać, jest dodanie wszystkiego do elementu CoordinatorLayout do Fragmentu i dodanie/usunięcie zawartości z AppBarLayout zgodnie z wymaganiami dla każdego Fragmentu. Aby dodać menu hamburgera, dodać pozycje menu lub zaktualizować tytuł, musisz uzyskać odnośnik do paska narzędzi. – ThanksMister