dev*_*max 19

为了启用/禁用折叠工具栏的滚动,您可以提供自定义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);
}
Run Code Online (Sandbox Code Playgroud)

  • 这可以防止在 RecyclerView 中滚动,而不仅仅是 AppBarLayout 的折叠 (2认同)