Android 单击CardView时的立面动画

Android 单击CardView时的立面动画,android,android-cardview,android-elevation,Android,Android Cardview,Android Elevation,我想将立面动画添加到我的android.support.v7.widget.cardwiew,就像材质样式按钮一样。我已尝试设置一个状态列表Animator: android:stateListAnimator="@anim/selector_raise" 指向res/anim中的我的选择器: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/a

我想将立面动画添加到我的
android.support.v7.widget.cardwiew
,就像材质样式
按钮一样。我已尝试设置一个
状态列表Animator

android:stateListAnimator="@anim/selector_raise"
指向
res/anim
中的我的选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:state_pressed="true">
        <objectAnimator android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ" android:valueTo="@dimen/touch_raise"
            android:valueType="floatType" />
    </item>
    <item>
        <objectAnimator android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ" android:valueTo="0dp"
            android:valueType="floatType" />
    </item>
</selector>

但是Android Studio给了我一个错误:

必须声明元素选择器


正确的方法是什么?

我已经尝试了您的代码,也许您只是简单地将状态添加到第二个选择器元素中

所以改变这条线

<item>

用这个

<item android:state_enabled="true" android:state_pressed="false">

完整的代码将是

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:state_pressed="true">
        <objectAnimator android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ" android:valueTo="@dimen/touch_raise"
            android:valueType="floatType" />
    </item>
    <item android:state_enabled="true" android:state_pressed="false">
        <objectAnimator android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ" android:valueTo="0dp"
            android:valueType="floatType" />
    </item>
</selector>

您试图在
res/anim
文件夹中创建此.xml

您应该在
res/animator
上创建,如果不存在,则很容易创建

但是如果你寻找问题,它已经给了你一个可能的解决方案

为我工作,我将动画师移到res/animator/my_filename.xml下