1

当我尝试为AppBarLayout设置特定的高程值时,阴影完全消失。AppBarLayout上的高程不起作用

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:elevation="4dp"> 

    <!-- Toolbar --> 
    <android.support.v7.widget.Toolbar... 

    <!-- Other Layouts --> 

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

这是错误还是预期的行为?

我正在使用设计库的版本26.0.0。

回答

2

设置Property Animation

与执行时间1ms创建动画:/animator/appbar_elevation.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <objectAnimator 
     android:duration="1" 
     android:propertyName="elevation" 
     android:valueTo="2dp" 
     android:valueType="floatType" /> 
</item> 
</selector> 

将其设置为AppBarLayout

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"  
    android:stateListAnimator="@animator/appbar_elevation"> 
</android.support.design.widget.AppBarLayout> 

它可以在Java代码中使用。

appBarLayout.setStateListAnimator(AnimatorInflater.loadStateListAnimator(getContext(), R.animator.appbar_elevation)); 
+0

This Works,thanks!但在我看来,解决这个问题似乎很难办。为什么需要添加动画师? – marc97

+0

因为某种方式不起作用。我还用其他方式。 – KeLiuyue

+0

@ marc97你能告诉我解决这个问题的方法吗? – KeLiuyue