반응형
    
    
    
  Android FragmentTransaction 사용자 정의 애니메이션 (알 수없는 애니메이터 이름 : 번역)
내 조각과 함께 작동하도록 사용자 지정 애니메이션을 얻으려고합니다.
온라인 자습서를 따랐지만 아래 오류가 발생했습니다.
java.lang.RuntimeException : 알 수없는 애니메이터 이름 : 번역
애니메이션의 XML은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
    android:fromXDelta="100%"
    android:toXDelta="0"
    android:duration="300" />
</set>
Java 파일은 다음과 같습니다.
public void goCategory(View v) {        
    FragmentTransaction ft = fm.beginTransaction();     
    ft.setCustomAnimations(R.animator.anim_in_left, R.animator.anim_out_left);              
    ft.show(fragment);
    ft.commit();
}
다른 스레드의 솔루션을 이해하는 데 문제가 있습니다. 누군가 나를 위해 그것을 바보로 만들 수 있다면 정말 고맙습니다.
작동하지 않습니다. 오브젝트 애니메이터를 사용해야합니다.
animator / slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="1000"
        android:valueTo="0"
        android:valueType="floatType" />
</set>
animator / slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <objectAnimator
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="500"
        android:propertyName="x"
        android:valueFrom="0"
        android:valueTo="-1000"
        android:valueType="floatType" />
</set>
클래스 하위 범주
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            // return super.onCreateView(inflater, container, savedInstanceState);
            View view = (ViewGroup) inflater.inflate(R.layout.product_frame, null);
            getFragmentManager().beginTransaction()
                    .replace(R.id.sub_header, new Sub_Header()).commit();
            getFragmentManager()
                    .beginTransaction()
                    .setCustomAnimations(R.animator.slide_in_left,
                            R.animator.slide_out_right, 0, 0)
                    .replace(R.id.product_frame, new Sub_Catagory_Grid()).commit();
            view.getWidth();
            return view;
        }
아마도 두 개의 API를 혼합하고있을 것입니다. 두 가지 경우가 있습니다.
- 3.0 미만을 대상으로 하거나 v4 프래그먼트를 지원 하는 경우 : 사용중인 기존 애니메이션 API를 사용해야합니다 (애님 /으로 이동하고 - R.anim.thing).
- 3.0 이상을 대상으로 하고 네이티브 프래그먼트를 사용하는 경우 : 새로운 애니메이션 API, 즉 ObjectAnimators를 사용해야합니다 - R.animator.thing.
@minivac이 대답했듯이 두 개의 API를 혼합하고 있습니다. 조각 트랜잭션에 사용자 지정 애니메이션을 추가하는 방법에 대해 자세히 알아 보려면 Android 교육 가이드에서 Display Card Flip Animations 예제를 살펴보세요 . 문제를 정확히 해결합니다.
반응형
    
    
    
  'ProgramingTip' 카테고리의 다른 글
| 숫자 배열에서 누락 된 숫자를 찾는 가장 빠른 방법 (0) | 2020.11.09 | 
|---|---|
| 조건에 따라 목록에서 항목 제거 (0) | 2020.11.09 | 
| NSArray를 반복하는 쉬운 방법이 거꾸로? (0) | 2020.11.09 | 
| Rails + New Relic : RPM은 무엇을 의미합니까? (0) | 2020.11.09 | 
| Guzzle에서 예외 잡기 (0) | 2020.11.09 |