it-swarm.dev

الرسوم المتحركة المخصصة لـ Android FragmentTransaction (اسم رسوم متحركة غير معروف: Translate)

أحاول الحصول على رسم متحرك مخصص للعمل مع جزءتي.

لقد تابعت البرامج التعليمية عبر الإنترنت لكني تلقيت الخطأ التالي:

Java.lang.RuntimeException: اسم رسوم متحركة غير معروف: translate

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();
}

أواجه مشكلة في فهم الحلول في مؤشرات الترابط الأخرى. إذا كان شخص ما يمكن أن أغفل ذلك بالنسبة لي ، وأنا أقدر ذلك حقا.

67
SalicBlu3

انها لن تعمل ، يجب عليك استخدام الرسوم المتحركة وجوه

الرسوم المتحركة/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>

الرسوم المتحركة/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;

        }
105
Ammar ali

ربما كنت خلط اثنين من أبيس. هناك حالتان:

  • إذا كان الاستهداف أقل من 3.0 أو باستخدام شظايا دعم v4: عليك استخدام الرسوم المتحركة القديمة api ، أي التي تستخدمها (يذهبون إلى anim/و ، R.anim.thing)

  • إذا كنت تستهدف أعلى من 3.0 و باستخدام الأجزاء الأصلية: عليك استخدام apis للرسوم المتحركة الجديدة ، أي ObjectAnimators (يذهبون إلى الرسوم المتحركة/وهم R.animator.thing).

112
minivac

كما أجاب minivac فأنت تخلط بين واجهات برمجة التطبيقات. يرجى إلقاء نظرة على عرض بطاقة رسوم متحركة فليب مثال من أدلة تدريب Android للحصول على مزيد من التفهم حول كيفية إضافة رسوم متحركة مخصصة إلى المعاملات المجزأة. يحل مشكلتك بالضبط.

0
txedo