program tip

애니메이션을 통해 활동에서 조각 바꾸기

radiobox 2020. 9. 15. 07:44
반응형

애니메이션을 통해 활동에서 조각 바꾸기


애니메이션을 통해 활동에서 두 조각을 바꾸고 싶습니다. PageA는 조각 A 용이고 화면의 왼쪽은 페이지 B는 조각 B 용, 즉 화면 오른쪽에 있다고 가정합니다. 이제 pageA의 버튼을 클릭하면 PageA가 일부 전환 애니메이션과 함께 화면의 오른쪽으로 이동합니다.

위치를 바꾸기 위해 아래 코드를 시도했습니다.

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, new FragB());
fragmentTransaction.commit();

단서를 찾고 있습니다.

미리 감사드립니다.


오래된 질문과 아마 이미 알아 냈을 것입니다.

코드를 통해 조각을 바꿀 때 사용자 지정 애니메이션을 설정하는 데 사용하는 방법은 다음과 같습니다.

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
ft.replace(R.id.fragment_container, newFragment, "fragment");
// Start the animated transition.
ft.commit();

다음은 slide_in_left 애니메이션의 예입니다.

<?xml version="1.0" encoding="utf-8"?>
<set>
  <translate xmlns:android="http://schemas.android.com/apk/res/android"
   android:fromXDelta="-100%"
   android:toXDelta="0"
   android:interpolator="@android:anim/decelerate_interpolator"
   android:duration="500"/>
</set>

호환성 라이브러리를 사용하는 경우 이것은 애니메이션입니다. 대신 FragmentManager에 대한 기본 지원과 함께 SDK를 사용하는 경우 애니메이션은 다음과 같이 표시됩니다.

<?xml version="1.0" encoding="utf-8"?>
<set>
  <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="x" 
    android:valueType="floatType"
    android:valueFrom="-1280"
    android:valueTo="0" 
    android:duration="500"/>
</set>

이는 호환성 라이브러리가 새 objectAnimator 유형을 지원하지 않고 대신 이전 애니메이션 프레임 워크 만 구현하기 때문입니다.

참고 URL : https://stackoverflow.com/questions/8876126/swap-fragment-in-an-activity-via-animation

반응형