使用 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 控制折叠工具栏布局的滚动的主要内容,如果未能解决你的问题,请参考以下文章

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”