5

Próbuję implementacji paska narzędzi i TabLayout, w którym po przewinięciu widoku recycle powinien on ukrywać pasek narzędzi tak jak aplikacja WhatsApp. Miałem na myśli google Blog i Michal Z's Blog. Mam przeglądarkę stronicowania w głównej aktywności i wyświetlam listę danych w niej za pomocą funkcji recycleview.Pasek narzędzi nie przewija się nawet po podaniu flagi "app: layout_scrollFlags"

Szczerze mówiąc zostałem zachwycony nową biblioteką projektów google, ponieważ za pomocą tylko jednej linii kodu XML można zmienić kompletne zachowanie interfejsu użytkownika i interfejsu użytkownika. Idealnie do tej funkcjonalności musimy dodać linię app:layout_scrollFlags="scroll|enterAlways" na pasku narzędzi i to po prostu działa. Ale dla mnie nie działa. Przetestowałem go na urządzeniach z interfejsem API 19 i 21.

Przechodząc przez questionquestion na przepełnienie stosu i różne BlogBlog znalazłem 2 sposobem osiągnięcia tego celu poprzez zapewnienie funkcjonalności 1. przewijania słuchacza recycleview i 2. umieszczając przewijalną zawartość wewnątrz NestedScrollView. Ale nie zadziałało zgodnie z oczekiwaniami.

Myślę, że powinno działać bez pisania kodu.

główna Activity.xml

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

    <android.support.design.widget.AppBarLayout 
     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:background="@color/colorPrimary" 
      android:layout_height="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/Base.ThemeOverlay.AppCompat.Dark"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/sliding_tabs" 
      android:background="@color/colorPrimaryDark" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

ViewPagerFragment.xml

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/swipe_refresh_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/windowBackground"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/order_list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft= "true" 
     android:layout_alignParentStart="true" 
     android:layout_above="@+id/txtStatus" /> 

</android.support.v4.widget.SwipeRefreshLayout> 
+0

Proszę opublikować plik 'build.gradle'. – Mikhail

Odpowiedz

4

Twój układ wydaje się być poprawne.
Sprawdź, czy w Twojej build.gradle wersji recyclerView jest dokładnie 22.2.0 i buildToolsVersion jest 22.0.1. Musisz to zrobić, ponieważ wszystkie te nowe funkcje pojawiły się w bibliotece wsparcia 22.2.0, jak wspomniano: here.

+0

buildToolsVersion to 22.0.1, ale używałem wersji "v7: 22.0. +" Do ponownego wyświetlenia. Teraz zmieniłem go na 22.2.0 i działa zgodnie z oczekiwaniami. Dzięki Arkadia –

+1

używam v7: 23.3.0, ale to nie działa trochę czasu dla mnie –

Powiązane problemy