我正在尝试在我的应用程序中实现Material Design,但是我不明白用StateListAnimator
实现阴影或为视图分配高程有什么区别。
以下是即时通讯所涉及的链接:
StateListAnimator
Elevation
我看到的是两者都可以做同样的事情,那么为什么要在v5.0中实现两者呢?
最佳答案
StateListAnimator允许您为包括elevation
在内的View属性设置动画。默认的Button实现使用StateListAnimator来处理elevation
和translationZ
更改,以响应禁用状态和按下状态的更改。
因此,默认按钮样式使用stateListAnimator属性而不是设置height属性。
这是该XML的示例:res/animator/button_state_list_anim_material.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_enabled="true">
<set>
<objectAnimator android:propertyName="translationZ"
android:duration="@integer/button_pressed_animation_duration"
android:valueTo="@dimen/button_pressed_z_material"
android:valueType="floatType"/>
<objectAnimator android:propertyName="elevation"
android:duration="0"
android:valueTo="@dimen/button_elevation_material"
android:valueType="floatType"/>
</set>
</item>
...
关于android - Android Material Design View 状态更改与高程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27969848/