使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动

Posted

技术标签:

【中文标题】使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动【英文标题】:Using AppBarLayout.Behavior.DragCallback to control scroll of collapsing toolbar layout 【发布时间】:2016-01-16 13:10:45 【问题描述】:

我希望能够启用和禁用折叠工具栏的滚动。谁能告诉我如何使用 AppBarLayout.Behavior.DragCallback 的示例?

https://developer.android.com/reference/android/support/design/widget/AppBarLayout.Behavior.DragCallback.html

【问题讨论】:

【参考方案1】:

为了启用/禁用折叠工具栏的滚动,您可以提供自定义 DragCallback 作为 AppBarLayout 行为的一部分。这是一个示例代码:

private void setAppBarDragging(final boolean newValue) 
    AppBarLayout appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout);
    CoordinatorLayout.LayoutParams params = 
            (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
    AppBarLayout.Behavior behavior = new AppBarLayout.Behavior();
    behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() 
        @Override
        public boolean canDrag(AppBarLayout appBarLayout) 
            return newValue;
        
    );
    params.setBehavior(behavior);

【讨论】:

这可以防止在 RecyclerView 中滚动,而不仅仅是 AppBarLayout 的折叠

以上是关于使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动的主要内容,如果未能解决你的问题,请参考以下文章