AppBarLayout 设置setScrollFlags(int)

先获取AppBarLayout可收缩伸展滑动的子控件(例如LinearLayout)  linearLayout

AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams)linearLayout.getLayoutParams();

params.setScrollFlags(0);//0不能伸缩

linearLayout.setLayoutParams(params);

ScrollFlags共有五种常量值供AppBarLayout的Children View使用,在xml布局文件中通过app:layout_scrollFlags设置,对应的值为:scroll,enterAlways,enterAlwaysCollapsed,snap,exitUntilCollapsed;


(1)scroll:值设为scroll的View会跟随滚动事件一起发生移动。

(2)enterAlways:值设为enterAlways的View,当ScrollView往下滚动时,该View会直接往下滚动。而不用考虑ScrollView是否在滚动。

(3)exitUntilCollapsed:值设为exitUntilCollapsed的View,当这个View要往上逐渐“消逝”时,会一直往上滑动,直到剩下的的高度达到它的最小高度后,再响应ScrollView的内部滑动事件。

(4)enterAlwaysCollapsed:是enterAlways的附加选项,一般跟enterAlways一起使用,它是指,View在往下“出现”的时候,首先是enterAlways效果,当View的高度达到最小高度时,View就暂时不去往下滚动,直到ScrollView滑动到顶部不再滑动时,View再继续往下滑动,直到滑到View的顶部结束。

(5) 简单理解,就是滚动时按比例的一个吸附效果。也就是说,不会存在局部显示的情况,当你滚动部分高度后,松开手指,要么向上全部滚出屏幕,要么向下全部滚进屏幕,有点类似ViewPager的左右滑动。

方法二: 设置NestedScrollView  --->NestedScrollView .setNestedScrollingEnabled(false);即可

//去掉上滑时顶部阴影

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

AppBarLayout.setOutlineProvider(null);

}

你可能感兴趣的:(AppBarLayout 设置setScrollFlags(int))