美文网首页
AppBarLayout 设置setScrollFlags(in

AppBarLayout 设置setScrollFlags(in

作者: Monkey_sxl | 来源:发表于2017-10-19 17:54 被阅读0次

    先获取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(in

          本文链接:https://www.haomeiwen.com/subject/llkpuxtx.html