2014-12-24 2 views
0

내 앱에서 내가 원하는 것은 버튼 클릭입니다. 조각에서 슬라이드를하고 다시 클릭하여 조각을 슬라이드합니다. 조각을 아래로 밀어 내리는 코드는 작동하지만 전환에 슬라이딩번역 (슬라이드) 애니메이션이 작동하지 않습니다 android

슬라이드

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <objectAnimator 
     android:interpolator="@android:anim/linear_interpolator" 
     android:propertyName="getXFraction" 
     android:valueType="floatType" 
     android:valueFrom="0" 
     android:valueTo="1000" 
     android:duration="@android:integer/config_mediumAnimTime"/> 
    <objectAnimator 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:propertyName="alpha" 
     android:valueType="floatType" 
     android:valueFrom="0" 
     android:valueTo="1.0" 
     android:duration="@android:integer/config_mediumAnimTime"/> 
</set> 

슬라이드

코드
<?xml version="1.0" encoding="utf-8"?> 
    <objectAnimator 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:propertyName="translationY" 
     android:valueType="floatType" 
     android:valueFrom="0" 
     android:valueTo="1280" 
     android:duration="1000"/> 

아래

까지 .. 작동하지 않습니다
private void toggleList() { 
     Fragment f = getFragmentManager() 
       .findFragmentByTag(LIST_FRAGMENT_TAG); 
     if (f != null) { 
      getFragmentManager().popBackStack(); 
     } else { 
      getFragmentManager().beginTransaction() 
        .setCustomAnimations(R.animator.slide_up, 
          R.animator.slide_down, 
          R.animator.slide_up, 
          R.animator.slide_down) 
        .add(R.id.frag_container, new frag(), 
          LIST_FRAGMENT_TAG 
        ).addToBackStack(null).commit(); 
     } 
    } 
+0

번역 값을 하드 코딩하는 것은 좋은 생각으로 보입니다. 개인적으로 애니메이션을 프로그래밍 방식으로 사용하기 때문에 화면 크기에 맞게 지정할 수 있습니다. –

+0

왜 SlideUp에 두 개의 ObjectAnimator가 있습니까? –

+0

@JASONGPETERSON 제발 저에게 어떻게 안내해 주시겠습니까 ?? – Anuj

답변

0

당신이 xFraction를 사용하고, 나는 만 (장치가 화면 폭) 0과 1 사이의 애니메이션을 할 필요가 생각 (내 코드에서, 그냥 xFraction하지 getXFraction이다). 후자를 100으로 설정하면 움직이는 물체의 화면 폭이 100 배가됩니다. Slide down이 작동합니다 (그러나 특정 화면 크기에만 해당).이 경우 yTranslate을 사용하고 있기 때문에 단위는 픽셀입니다. 이 경우 yFraction을 0에서 1로 설정하는 것이 좋습니다. 다른 사람들이 주석을다는 경우 다른 모든 것이 실패하면 세트에 추가하기 전에 slide in을 솔로 애니메이션으로 테스트하십시오.

관련 문제