我有一个LinearLayout,我希望当我在RecyclerView上向上滚动时隐藏它,并在向下滚动时重新出现;行为应该与Toolbar隐藏和重新出现的方式相同。
目前我已经做到了以下内容:
<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>
据我目前了解,我可以在
viewToHideOnScroll
上指定app:layout_behavior
值,这样它就可以根据recyclerView
的滚动事件平稳地滚入和滚出视图。为此,我必须编写一个自定义类ViewToHideOnScrollBehavior
并重写layoutDependsOn
和一些其他方法(onNestedScroll
?)。如果这是正确的,这是我现在拥有的内容:
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
}
能否给我一些提示,还是我做错了什么?
我一直在按照 https://lab.getbase.com/introduction-to-coordinator-layout-on-android/ 的介绍操作。