6

RecyclerView'ımda yukarı kaydırdığımda gizlemek istediğim bir LinearLayout var ve aşağı kaydırdığımda yeniden görün; davranış, tıpkı Araç Çubuğunun nasıl gizlendiği ve yeniden görüneceği gibi olmalıdır.CoordinatorLayout with RecyclerView

Bugüne kadar anlayabiliyorum kadarıyla
<android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

    <LinearLayout 
     android:id="@+id/viewToHideOnScroll 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <!-- other stuff inside the LinearLayout --> 

    </LinearLayout> 

    <RecyclerView 
     android:id="@+id/recyclerView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

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

, içeri ve bakış dışarı pürüzsüz kaydırır etkinlikleri kaydırmak göre viewToHideOnScroll böylece bir app:layout_behavior değeri belirtebilirsiniz:

Bu

Bugüne kadar ne var recyclerView. Bunu yapmak için, özel bir sınıf ViewToHideOnScrollBehavior yazmalı ve layoutDependsOn geçersiz kılmalı ve başka bir yöntem ( onNestedScroll?).

yani burada doğrudur Ne sahip ise:

public class ViewToHideOnScrollBehavior extends CoordinatorLayout.Behavior<LinearLayout> { 

public ViewToHideOnScrollBehavior(Context context, AttributeSet attrs) {} 

    @Override 
    public boolean layoutDependsOn(CoordinatorLayout parent, LinearLayout child, View dependency) { 
     return dependency instanceof RecyclerView; 
    } 

    // some other method to override, I don't know 
} 

birisi bana bir ipucu verebilir, yoksa her şeyi yanlış yapıyorum?

ben takip ediyorum https://lab.getbase.com/introduction-to-coordinator-layout-on-android/

cevap

18

kullanıcı lineer düzeni aşağıdaki gibi xml dosyası oluşturmak zorunda gizlemek olduğunu kaydırma yaparken AppBar düzeni içine LinearLayout koymak gerekiyor. RecyclerView içinde

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" 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"> <LinearLayout android:id="@+id/lytSearchBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:gravity="center_vertical" android:orientation="horizontal" android:padding="@dimen/fivedp" app:layout_scrollFlags="scroll|enterAlways" // layout_scrollFlags for scroll layout android:visibility="visible"> </LinearLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/rvOrderList" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/lytSearchBar" android:paddingTop="@dimen/tendp" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

Özellik uygulamayı eklemek için unutma: layout_behaviour Yukarıdaki xml görüldüğü gibi.

+0

Teşekkürler @Darshan Mistry! Bu nedenle AppBarLayout, Araç Çubukları ile sınırlı değildir. – squeeish