当使用 CoordinatorLayout+AppBarLayout做滑动悬浮效果时,有时由于业务需求,需要动态控制
AppBarLayout是否滑动,也就是禁止滑动和开启滑动
一、禁止滑动
首先
1.绑定AppBarLayout视图
AppBarLayout appBarLayout=findViewById(R.id.appbar);
2.找到appBarLayout指定位置的视图。
View mAppBarChildAt = appBarLayout.getChildAt(0);
3.获得AppBarLayout关联的布局参数
AppBarLayout.LayoutParams mAppBarParams = (AppBarLayout.LayoutParams)mAppBarChildAt.getLayoutParams();
4.设置其不能伸缩,setScrollFlags其实和布局中的layout_scrollFlags属性
mAppBarParams.setScrollFlags(0);
就是这样
AppBarLayout appBarLayout=findViewById(R.id.appbar);
View mAppBarChildAt = appBarLayout.getChildAt(0);
AppBarLayout.LayoutParams mAppBarParams = (AppBarLayout.LayoutParams)mAppBarChildAt.getLayoutParams();
mAppBarParams.setScrollFlags(0);
二、动态设置其可以滑动
第一步是设置类型setScrollFlags,器类型有好多种,自己根据自己的需求进行设置
第二步不用说,将其参数设置给appBarLayout
mAppBarParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL |
AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS);
mAppBarChildAt.setLayoutParams(mAppBarParams);
以上就是动态设置AppBarLayout动态滑动与否