【发布时间】:2015-01-15 17:52:22
【问题描述】:
我正在尝试在我的应用中实现 Material Design,但我不明白使用 StateListAnimator 实现阴影或为视图分配高程有什么区别。
下面是我在说什么的链接:
我所看到的是两者都可以做同样的事情,那么为什么他们在 v5.0 中实现了这两者?
【问题讨论】:
标签: android android-5.0-lollipop material-design
我正在尝试在我的应用中实现 Material Design,但我不明白使用 StateListAnimator 实现阴影或为视图分配高程有什么区别。
下面是我在说什么的链接:
我所看到的是两者都可以做同样的事情,那么为什么他们在 v5.0 中实现了这两者?
【问题讨论】:
标签: android android-5.0-lollipop material-design
StateListAnimator 允许您为视图属性设置动画,包括elevation。默认的 Button 实现使用 StateListAnimator 来处理 elevation 和 translationZ 的变化,以响应禁用和按下状态的变化。
因此,默认的 Button 样式使用 stateListAnimator 属性,而不是设置海拔属性。
下面是 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>
...
【讨论】: