CoordinatorLayout使用

项目开发有新的需求,在晚上接触到了CoordinatorLayout协调布局,之前了解过没用过。最后项目效果是这样子的。借鉴了这篇博客

项目GIF动态图

以下内容是记录使用过程中用的知识,和引用博客的类似。

<android.support.design.widget.CoordinatorLayout 
    ...>

    //建议将**Toolbar**放在**AppBarLayout**里面包裹住
    //不然,如果使用**DrawerLayout**侧边栏出现时不会有遮盖阴影效果
    <android.support.design.widget.AppBarLayout
        ...>

        <android.support.v7.widget.Toolbar
            ...
            app:layout_scrollFlags="scroll|enterAlways"/>
    </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>

layout_scrollFlags 为需要进行处理的View设置动作。设置这个属性的View的上一个也必须设置次属性值。不能断开

  • scroll:所有想滚动出屏幕的view都需要设置这个flag, 没有设置这个flag的view将被固定在屏幕顶部。例如,TabLayout 没有设置这个值,将会停留在屏幕顶部
  • enterAlways:设置这个flag时,向下的滚动都会导致该view变为可见,启用快速“返回模式”,否则就必须拉到顶端后才显示作用于最后一个设置 scroll 的View。在使用时,如果Toolbar和TabLayout同时设置 scroll 属性(TabLayout在Toolbar下方),并且只有Toolbar设置 enterAlways 快速返回模式。向下滑动时,出现的不是Toolbar而是TabLayout,要滑动到顶端Toolbar才会显示。
  • exitUntilCollapsed:滚动退出屏幕,最后折叠在顶端。
  • snap:在滚动结束后,如果view只是部分可见,它将滑动到最近的边界。比如,view的底部只有25%可见,它将滚动离开屏幕,而如果底部有75%可见,它将滚动到完全显示。
  • enterAlwaysCollapsed:当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。

layout_behavior,在CoordinatorLayout 子视图中带有滚动属性的View要设置此属性,告诉协调布局它的滑动行为,一般自定义实现自己需要的功能。

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ...>

    <android.support.v4.view.ViewPager
        ...
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>

CollapsingToolbarLayout折叠模式

<android.support.design.widget.CoordinatorLayout 
    ...>

    <android.support.design.widget.AppBarLayout
        ...>

        <android.support.design.widget.CollapsingToolbarLayout
            ...
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <ImageView
                ...
                app:layout_collapseMode="parallax"
                app:layout_collapseParallaxMultiplier="0.8" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

layout_collapseMode 折叠模式

  • parallax:视察效果,在滑动过程中,不管上滑还是下滑都会有视察效果
  • pin:在滑动过程中,设置次属性的View会被固定,直到CollapsingToolbarLayout全部折叠或者全部展开

layout_collapseParallaxMultiplier 视差因子

  • 取值在0~1之间:(在折叠之前)0滑多少动多少 1滑多少都不动
  • 只有设置为parallax才有用

MD(Meterial Design)设计中需要注意的地方

  • CardViewapp:cardElevation=”“6dp

    • SDK 21 以下会自动留出阴影控件,Lollipop以上需要手动设置Margin(和cardElevation数值一样),这样会是SDK 21Lollipop显示效果同。建立value-v21 dimen分别设置 0dp 和 cardElevation 一样的数值。
  • FloatingActionButtonLollipop以上没有距离屏幕边框的Margin,也没有阴影效果。如果使用Snackbar,当Snackbar消失是不会回到原来位置。

    • 定义values-v21 (一般情况是16dp)
    • app:elevation(正常状态下的阴影)app:pressedTranslationZ(按下状态下的阴影)
    • 设置marginbottom 和 marginright 为非零值时可复原(0.1dp)(v-21)

Demo链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值