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和CollapsingToolbarLayout結合使用時陰影才有效果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM