禁止AppBarLayout滑动

遇到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
前者为滑动到你让他去的地方
后者为滑动你给的大小距离

你可能感兴趣的:(禁止AppBarLayout滑动)