先获取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);
}