遇到xx产品测试通过后改需求,他让在展开下面前不允许往上面滑动,但是弹上去又需要这个,so搞了这个方案。
/**
* 控制appbar的滑动
* @param isScroll true 允许滑动 false 禁止滑动
*/
private void banAppBarScroll(boolean isScroll){
View mAppBarChildAt = appBarLayout.getChildAt(0);
AppBarLayout.LayoutParams mAppBarParams = (AppBarLayout.LayoutParams)mAppBarChildAt.getLayoutParams();
if (isScroll) {
mAppBarParams.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
mAppBarChildAt.setLayoutParams(mAppBarParams);
} else {
mAppBarParams.setScrollFlags(0);
}
}
顺便用了下 view的scrollTo 和 scrollBy
前者为滑动到你让他去的地方
后者为滑动你给的大小距离