AppBarLayout折叠时候的阴影

Posted 南极冰川雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AppBarLayout折叠时候的阴影相关的知识,希望对你有一定的参考价值。

最近在项目中遇到一个需求,AppBarLayout在完全展开时没有阴影,在完全收缩时展示阴影,这个功能可以通过设置StateListAnimator的轻松的实现。

首先,在res/animator目录下建立appbar_elevation.xml文件,如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <!--折叠状态下的阴影-->
    <item app:state_collapsed="true">
        <objectAnimator
            android:propertyName="elevation"
            android:valueTo="5dp"
            android:valueType="floatType" />
    </item>
    <!--展开状态下的阴影-->
    <item app:state_collapsed="false">
        <objectAnimator
            android:propertyName="elevation"
            android:valueTo="0dp"
            android:valueType="floatType" />
    </item>
</selector>

然后在布局文件里设置AppBarLayout的stateListAnimator属性,如下:

<android.support.design.widget.AppBarLayout
     android:id="@+id/appbar"
     android:layout_width="match_parent"
     android:layout_height="256dp"
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
     android:background="@color/white"
     android:stateListAnimator="@animator/appbar_elevation"
    >

 

以上是关于AppBarLayout折叠时候的阴影的主要内容,如果未能解决你的问题,请参考以下文章

带有工具栏的 AppBarLayout 没有阴影/高度

无法使用 NestedScrollView 平滑滚动 AppBarLayout 和折叠工具栏

使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动

37Android去除AppBarLayout阴影

Material Design 折叠效果 Toolbar CollapsingToolbarLayout AppBarLayout

单个活动:带有 AppBarLayout 的片段