Android折叠工具栏,仅在用户触摸回收站视图时才会折叠

时间:2016-11-23 13:34:10

标签: android android-recyclerview android-collapsingtoolbarlayout

我有以下布局

[CoordinatorLayout]
 [AppBarLayout]
  [CollapsingToolbarLayout]
   [Toolbar]
    [RelativeLayout/]
   [/Toolbar]
  [/CollapsingToolbarLayout]
 [AppBarLayout]
 [RecyclerView/]
[/CoordinatorLayout]

折叠工具栏工作正常。

我的回收视图就像这样

<android.support.v7.widget.RecyclerView
    android:id="@+id/profile_grid"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:overScrollMode="never"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

如果没有足够的项目,您无法滚动和折叠工具栏。

如果您尝试触摸appbar并向上滚动它会崩溃。

您是否知道一种方法可以阻止它并仅在用户触摸回收器时使其崩溃?

1 个答案:

答案 0 :(得分:1)

当我看到here

时,答案很简单
if (appBarLayout.getLayoutParams() != null) {
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
AppBarLayout.Behavior appBarLayoutBehaviour = new AppBarLayout.Behavior();
appBarLayoutBehaviour.setDragCallback(new AppBarLayout.Behavior.DragCallback() {
    @Override
    public boolean canDrag(@NonNull AppBarLayout appBarLayout) {
        return false;
    }
});
layoutParams.setBehavior(appBarLayoutBehaviour);

}