1. AppBarLayout类

AppBarLayout是5.0版本出现的控件,是一种支持响应滚动手势的app bar布局。

AppBarLayout组合的滚动布局(RecyclerViewNestedScrollView等),需要设置

app:layout_behavior = "@string/appbar_scrolling_view_behavior"

配置文件,

                                                                                    

2. layout_scrollFlags配置

AppBarLayout的子视图中配置不同layout_scrollFlags属性,会产生不同的效果。

  • 不设置

    Toolbar在顶部不动,滑动只发生在NestedScrollView内部。

  • 设置为scroll

    Toolbar随着手势一起滑动。

  • 设置为enterAlways

    enterAlways必须和scroll一起使用。在向上滑动时和scroll一样,但向下时,Toolbar先进入屏幕。

  • 设置为enterAlwaysCollapsed

    enterAlwaysCollapsed必须和enterAlways一起使用,且Toolbar设置minHeight。在向上滑动时和scroll一样,但向下时Toolbar先进入,但只显示minHeight高度。

  • 设置为exitUntilCollapsed

    exitUntilCollapsed必须和scroll一起使用,且Toolbar设置minHeight。滚动效果与scroll类似,只是Toolbar会固定在最上方,但只显示minHeight高度。

  • 设置为snap

    snap必须和scroll一起使用。向上滑动一小段距离,Toolbar自动滑出屏幕。向下滑动一段距离,Toolbar自动滑进屏幕。

3. 代码设置

可以通过AppBarLayoutLayoutParams设置滚动效果。

AppBarLayout.LayoutParams lp = (AppBarLayout.LayoutParams) toolbar.getLayoutParams();// SCROLL_FLAG_SCROLL// SCROLL_FLAG_ENTER_ALWAYS// SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED// SCROLL_FLAG_EXIT_UNTIL_COLLAPSED// SCROLL_FLAG_SNAPlp.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_xx);toolbar.setLayoutParams(lp);

4. 多子视图

AppBarLayout可以设置多个子视图的layout_scrollFlags属性

                    

效果如下

相关文章
Android Snackbar控件
Android FloatingActionButton控件
Android Toolbar控件
Android AppBarLayout控件
Android CollapsingToolbarLayout控件
Android CardView控件
Android SlidingPaneLayout和DrawerLayout控件
Android NavigationView控件
Android TabLayout控件

更多相关文章

  1. Android调用摄像头取像
  2. 学习TimePicker和DataPicker
  3. android日期选择器,从底部弹出的日期选择器,有点像IOS日期选择器
  4. Android展开/收缩列表 ExpandableListView 每次只能有一个项目是
  5. Android的ScrollView和HorizontalScrollView-android学习之旅(四
  6. Android入门:Log介绍
  7. Android(安卓)混淆配置文件及常用第三方混淆
  8. Android(安卓)自定义控件,模仿小米秒表样式的时钟,完整代码注解
  9. Android(安卓)— 自定义圆形 ImageView 控件

随机推荐

  1. Android 签名证书
  2. android kernel Debugging hibernation a
  3. Android 红圈营销项目 —— 自定义柱形图
  4. android读取SDCard任意路径下的文件
  5. Android最简单的热更新方式 - Robust 使
  6. Android 判断某个APK是否已安装
  7. Android 系统 设置 之 网络 APN (一)
  8. Gradle Error: Connection timed out 无
  9. android 判断时间是否已过期
  10. Android叠加更新