【问题标题】:Android Material Design View State changes vs ElevationAndroid Material Design 视图状态变化与海拔
【发布时间】:2015-01-15 17:52:22
【问题描述】:

我正在尝试在我的应用中实现 Material Design,但我不明白使用 StateListAnimator 实现阴影或为视图分配高程有什么区别。

下面是我在说什么的链接:

StateListAnimator
Elevation

我所看到的是两者都可以做同样的事情,那么为什么他们在 v5.0 中实现了这两者?

【问题讨论】:

    标签: android android-5.0-lollipop material-design


    【解决方案1】:

    StateListAnimator 允许您为视图属性设置动画,包括elevation。默认的 Button 实现使用 StateListAnimator 来处理 elevationtranslationZ 的变化,以响应禁用和按下状态的变化。

    因此,默认的 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>
        ...
    

    【讨论】:

    • 动画目录中不允许选择器。
    • 这个需要放到animator目录下。
    • 是否可以获得完整的xml?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 2016-05-22
    • 1970-01-01
    • 2016-01-11
    • 2017-09-17
    • 2014-12-30
    • 1970-01-01
    相关资源
    最近更新 更多