2016-12-12 9 views
4

소재 스타일 Button처럼 높이 애니메이션을 android.support.v7.widget.CardView에 추가하고 싶습니다. 내가 설정하려고했습니다 StateListAnimator :CardView를 클릭하면 입체 애니메이션

res/anim 내 선택을 가리키는
android:stateListAnimator="@anim/selector_raise" 

:

<?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> 

하지만 안드로이드 스튜디오 나에게 오류 제공 :

Element selector must be declared

올바른 방법으로 무엇을 하기 위해서?

답변

0

코드를 시도했습니다. 아마도 두 번째 선택기 요소에 상태를 추가했을 것입니다.

그래서

<?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> 
0

당신은 res/anim 폴더에이 .XML을 만들려고 전체 코드는 것이

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

와 함께이 라인

<item> 

을 변경합니다.

작성하기가 쉬운 경우 res/animator에 만들어야합니다. 당신이 문제를 검색하면

는하지만 그것은 이미 당신에게 가능한 솔루션을 제공 enter image description here