マテリアルスタイルButton
sと同じように、標高アニメーションをAndroid.support.v7.widget.CardView
に追加したいと思います。 StateListAnimator
を設定しようとしました:
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は私にエラーを出します:
要素セレクターを宣言する必要があります
それを行う正しい方法は何ですか?
私はあなたのコードを試しました、多分あなたは単に状態を2番目のセレクター要素に追加しただけです。
したがって、この行を変更します
<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>