禁止AppBarLayout滑动
2017-04-18 18:37
106 查看
private void forbidAppBarScroll(boolean forbid) { if (forbid == forbidAppBarScroll) { return; } if (forbid) { forbidAppBarScroll = true; if (ViewCompat.isLaidOut(appBar)) { setAppBarDragCallback(new AppBarLayout.Behavior.DragCallback() { @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) { return false; } }); } else { appBar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { appBar.getViewTreeObserver().removeOnGlobalLayoutListener(this); } else { appBar.getViewTreeObserver().removeGlobalOnLayoutListener(this); } setAppBarDragCallback(new AppBarLayout.Behavior.DragCallback() { @Override public boolean canDrag(@NonNull AppBarLayout appBarLayout) { return false; } }); } }); } } else { forbidAppBarScroll = false; if (ViewCompat.isLaidOut(appBar)) { setAppBarDragCallback(null); } else { appBar.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { appBar.getViewTreeObserver().removeOnGlobalLayoutListener(this); } else { appBar.getViewTreeObserver().removeGlobalOnLayoutListener(this); } setAppBarDragCallback(null); } }); } } } private void setAppBarDragCallback(AppBarLayout.Behavior.DragCallback dragCallback) { CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBar.getLayoutParams(); AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); behavior.setDragCallback(dragCallback); }
相关文章推荐
- 禁止ViewPager滑动
- 最靠谱的禁止ViewPager滑动方法
- viewpager禁止滑动
- android三档自定义滑动开关,禁止点击功能的实现,用默认的seekbar组件实现
- Android禁止ViewPager的左右滑动
- 禁止ListView滑动
- 自定义控件(五)禁止滑动的ViewPager
- 可以控制禁止滑动的viewpage
- 禁止遮罩层以下屏幕滑动
- Android禁止ViewPager的左右滑动
- iOS小技巧-UITableView禁止上下滑动超出顶部或者底部的内容
- ListView滑动过程中禁止加载图片
- 禁止遮罩层以下屏幕滑动----正解(更新版)
- ViewPager的滑动禁止和滑动启动
- Swift--禁止当前页面左侧滑动返回
- drawerLayout设置滑动打开的,滑动禁止的代码
- Android 禁止ViewPager滑动
- 禁止ScrollView中控件长度发生变化自动滑动
- 去除ViewPager界面切换动画、禁止滑动
- CoordinatorLayout、Toolbar、TabLayout、AppBarLayout和RecyclerView组合可以滑动收起或显示Toolbar的demo