Android MaterialDesign系列之CoordinatorLayout实现折叠式菜单栏

一、简述

本文主要是对简易的折叠式菜单栏做个记录,方便以后开发进行比照改进。本文记录的有简单的Material化的折叠式菜单栏的实现,也将呈现一些比较重要的概念,比如 fitSystemWindows 的一些细节。

二、效果

三、使用

1、CoordinatorLayout

CoordinatorLayout即为协调性布局,是一个加强版的FrameLayout,它可以协调子布局及控件,要使用它必须把它设置为整个布局的根ViewGroup。同时,可以通过对“特殊子控件”设置app:appbar_scrolling_view_behavior属性的值,进而来协调子控件在整个布局中的显示位置。需要注意的是这里的“特殊子控件”只有RecyclerViewViewPagerNewstedScrollView这三种。

2、AppBarLayout

AppBarLayout是一个垂直的LinearLayout,实现了Material Design中AppBar的scrolling gestures特性。AppBarLayout的子View应该声明想要具有的“滚动行为”,这可以通过layout_scrollFlags属性或是setScrollFlags()方法来指定。 
AppBarLayout只有作为CoordinatorLayout的直接子View时才能正常工作, 为了让AppBarLayout能够知道何时滚动其子View,我们还应该在CoordinatorLayout布局中提供一个可滚动View,我们称之为scrolling view。scrolling view和AppBarLayout之间的关联,通过将scrolling view的Behavior设为AppBarLayout.ScrollingViewBehavior来建立。

scrollFlags的属性值 作用
scroll 让AppBarLayout与scrolling view合为一体,当scrolling view滚动时,AppBarLayout也跟着一起滚动。这是“增强”Toolbar的一个必需取值,可以跟其他值一起使用,从而实现不同的“增强”效果。单独使用scroll的话,其效果就类似给ListView加了一个HeaderView。

 ScrollFlags 标志介绍

        <!--
          scrollFlags:
              scroll: 里面所有的子控件想要滑出屏幕的时候View都必须设置这个flag
                      没有设置flag的View将被固定在屏幕顶部
              enterAlways: 快速返回
              enterAlwaysCollapsed:当你的视图设置了minHeight属性的时候,那么视图只能以最小高度显示,只有当滚动视图达到顶部时才能扩大到完成高度
              exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端
        -->

scrollFlags效果展示:

动图展示app:layout_scrollFlags的5种滑动属性

3、CollapsingToolbarLayout

要实现上图的效果,需要跟AppBarLayout一起使用,CollapsingToolbarLayout的使用很简单,直接包裹Toolbar即可,其中可以增加一个ImageView控件来作为CollapsingToolbarLayout的“背景”,其实CollapsingToolbarLayout本身是一个FrameLayo

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值