1

UPDATE: Hier ist ein example app. Ich habe es auf meinem Nexus 6P, Android 6.0.1Symbolleiste in AppBarLayout scrollt nicht ab, wenn transluzente Navigation wahr ist

getestet Ich verwende CoordinatorLayout und RecyclerView. Wenn <item name="android:windowTranslucentNavigation">true</item> Symbolleiste nicht versteckt ist (aber es ist selbst scrollbar). appcompat ist v7: 23.2.1

<android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

    <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

Wenn ich hinzufügen android:fitsSystemWindows="true"-AppBarLayout es mit einigen Problemen arbeitet.

Gibt es eine Lösung?

Systemleiste Overlays Symbolleiste enter image description here

Es gibt oben und unten Polsterungen enter image description here

Und CoordinatorLayout (vielleicht) blättert mit Symbolleiste enter image description here

+0

Konnten Sie Lösung für das Problem finden? – atabek

Antwort

1

scheint dies ein Fehler ist. Ich habe eine vorläufige Lösung für das Problem gefunden.

Sie sich von allen android los: fitsSystemWindows in Coordinator Aufbau und seine Kinder, oder sie falsch gesetzt. Und fügen Sie dann die Höhe der Statusbar auf Ihre Symbolleiste Höhe und Top-Polsterung manuell in Ihrer Aktivität:

toolbar.setPadding(0, getStatusBarHeight(), 0, 0); 
toolbar.getLayoutParams().height = toolbar.getLayoutParams().height + getStatusBarHeight(); 

Verfahren statusbar Höhe zu erhalten:

public int getStatusBarHeight() { 
    int height = 0; 
    int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
    if (resourceId > 0) { 
     height = getResources().getDimensionPixelSize(resourceId); 
    } 
    return height; 
} 

Mit diesen Änderungen Symbolleiste richtig Scrollen und es hat die richtige Höhe.

Verwandte Themen