2015-06-17 10 views
9

inclusa nel mio activity_main.xml s' DrawerLayout è un CoordinatorLayout chiamato content_layout.xml. All'interno di questo CoordinatorLayout è il mio AppBarLayout contenente un Toolbar, quindi un LinearLayout per il contenuto di un frammento.CoordinatorLayout Toolbar invisibile entrare fino a tutta altezza

Quando un frammento contenente uno RecyclerView viene fatto scorrere verso l'alto, la barra degli strumenti viene chiusa correttamente. Il problema si trova quando scorri verso il basso per riportare la barra degli strumenti. La barra degli strumenti non viene visualizzata fino a quando non è stata fatta scorrere l'intera altezza della barra degli strumenti e di conseguenza lascia una casella bianca antiestetica al suo posto, come mostrato.

toolbar http://i59.tinypic.com/33xil5d.png

content_layout.xml

<android.support.design.widget.CoordinatorLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/container_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

    <!-- The main content view for fragments--> 
    <LinearLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

La barra degli strumenti viene inizializzato tramite MainActivity s' onCreate():

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 
getSupportActionBar().setHomeButtonEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Gradirei eventuali suggerimenti riguardo a risolvere questo. Grazie.

risposta

13

Stavo avendo lo stesso problema e l'unica cosa che ho trovato che ha risolto era di avere qualcos'altro oltre allo toolbar all'interno dello AppBarLayout. Ho posizionato una vista invisibile nel mio layout sotto la barra degli strumenti. Non è la soluzione più ideale, ma ha funzionato.

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">  

    <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <View 
     android:id="@+id/appbar_bottom" 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@android:color/transparent" 
     android:visibility="invisible"/> 

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

È fantastico, grazie! Funziona alla grande. Anche se, come te, non sono del tutto sicuro del perché. – McGuile

+0

Awesome thx per questo. Puoi anche mettere altezza per 0.1dp in modo che non sia visibile affatto (beh quasi per niente;)) – zoroz

+1

Grazie mille @ Jon Cordeiro –

Problemi correlati