2015-06-17 8 views
9

W moim activity_main.xml „s DrawerLayout jest CoordinatorLayout nazywa content_layout.xml. Wewnątrz tego CoordinatorLayout jest moja AppBarLayout zawierająca Toolbar, a następnie LinearLayout dla zawartości fragmentu.CoordinatorLayout Toolbar niewidoczny na wpisanie do momentu pełnej wysokości

Po przewinięciu fragmentu zawierającego RecyclerView pasek narzędzi kończy się pomyślnie. Problem polega na przewijaniu w dół, aby przywrócić pasek narzędzi. Pasek narzędzi pojawia się dopiero po przewinięciu pełnej wysokości paska narzędzi i pozostawia w jego miejscu brzydkie białe pole, jak pokazano.

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> 

Pasek jest inicjowana poprzez MainActivity jest onCreate():

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

ja docenić żadnych wskazówek co do tego rozwiązania. Dziękuję Ci.

Odpowiedz

13

Miałem ten sam problem i jedyną rzeczą, którą znalazłem, że rozwiązał to przez posiadanie czegoś innego niż toolbar wewnątrz AppBarLayout. Umieściłem niewidoczny widok w moim układzie pod paskiem narzędzi. Nie jest to najbardziej idealne rozwiązanie, ale zadziałało.

<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

To genialne, dzięki! Działa świetnie. Chociaż, tak jak ty, nie jestem do końca pewien, dlaczego. – McGuile

+0

Awesome thx za to. Możesz również ustawić wysokość na 0.1dp, więc nie będzie widoczna (prawie w ogóle;)) – zoroz

+1

Wielkie dzięki @ Jon Cordeiro –

Powiązane problemy