Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 支持片段推送弹出动画_Android_Android Fragments_Android Animation_Android Transitions_Fragmentmanager - Fatal编程技术网

Android 支持片段推送弹出动画

Android 支持片段推送弹出动画,android,android-fragments,android-animation,android-transitions,fragmentmanager,Android,Android Fragments,Android Animation,Android Transitions,Fragmentmanager,我正在我的应用程序中使用v4支持片段和AppCompatActivity loginUserFragment = new FragmentLoginUser(); mFragmentTransaction = CommonUtils.getFragmentLRTransaction(this); mFragmentTransaction.add(R.id.fragmentContainer, loginUserFragment, loginUserFragment.get

我正在我的应用程序中使用v4支持片段和AppCompatActivity

    loginUserFragment = new FragmentLoginUser();
    mFragmentTransaction = CommonUtils.getFragmentLRTransaction(this);
    mFragmentTransaction.add(R.id.fragmentContainer, loginUserFragment, loginUserFragment.getClass().getName());
    mFragmentTransaction.commit();
从左到右的片段事务:

public static FragmentTransaction getFragmentLRTransaction(FragmentActivity fa) {
    FragmentTransaction ft = fa.getSupportFragmentManager().beginTransaction();
    ft.setCustomAnimations(anim.animated_activity_slide_left_in, anim.animated_activity_slide_right_out, anim.animated_activity_slide_right_in, anim.animated_activity_slide_left_out);
    return ft;
}
动画\u活动\u幻灯片\u左\u in.xml

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

动画\u活动\u幻灯片\u right\u out.xml

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

动画\u活动\u幻灯片\u right\u in.xml

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

动画\u活动\u幻灯片\u left\u out.xml

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


推送或弹出动画均不起作用:(

可以使用“平移”为活动设置动画,但不能使用“平移”为片段设置动画。对于片段,应使用“对象动画制作程序”

更新:

但正如@user3400729所指出的,支持片段管理器不能使用对象动画进行转换,但可以使用translate应用此动画

在本例中,我尝试了您的问题,发现动画工作正常,我所做的只是增加动画的持续时间,以便用户可以查看此动画

动画\u活动\u幻灯片\u左\u in.xml

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

动画\u活动\u幻灯片\u right\u out.xml

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

动画\u活动\u幻灯片\u right\u in.xml

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

动画\u活动\u幻灯片\u left\u out.xml

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


希望它能帮助您..

替换
MFFragmentTransaction.添加(…);
替换为
MFFragmentTransaction.替换(…);
试试这个

下面列出的推送和弹出片段,

public void pushFragments(String tag, Fragment fragment,
            boolean shouldAnimate, boolean shouldAdd) {
        try {
            if (shouldAdd)
                mStacks.get(tag).push(fragment);
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            if (shouldAnimate)
                ft.setCustomAnimations(R.anim.from_fade_in,
                        R.anim.from_fade_out);
            ft.replace(R.id.realTabContent, fragment);
            ft.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void pushFragments(String tag, Fragment fragment, Bundle args,
            boolean shouldAnimate, boolean shouldAdd) {
        try {
            if (shouldAdd)
                mStacks.get(tag).push(fragment).setArguments(args);
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            if (shouldAnimate)
                ft.setCustomAnimations(R.anim.from_fade_in,
                        R.anim.from_fade_out);
            ft.replace(R.id.realTabContent, fragment);
            ft.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void popFragments() {
        try {
            Fragment fragment = mStacks
                    .get(GlobalFields.mCurrentTab)
                    .elementAt(mStacks.get(GlobalFields.mCurrentTab).size() - 2);

            /* pop current fragment from stack.. */
            mStacks.get(GlobalFields.mCurrentTab).pop();

            /*
             * We have the target fragment in hand.. Just show it.. Show a
             * standard navigation animation
             */
            FragmentManager manager = getSupportFragmentManager();
            FragmentTransaction ft = manager.beginTransaction();
            ft.setCustomAnimations(R.anim.to_fade_in, R.anim.to_fade_out);
            ft.replace(R.id.realTabContent, fragment);
            ft.commit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
from\u fade\u in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="-100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%" />

</set>

来自_fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="-100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%" />

</set>

在.xml中淡入淡出

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="-100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%" />

</set>

到_fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="-100%" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="-100%"
        android:toXDelta="0" />

</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromXDelta="0"
        android:toXDelta="100%" />

</set>


您使用的appcompat的版本是什么?'com.android.support:appcompat-v7:23.0.1'在函数getFragmentLRTransaction中,是R.anim.animated\u activity\u slide\u left\u In还是anim.animated\u activity\u slide\u left\u In?支持库不支持objectAnimator:(对不起,我的错误。你是对的。支持库不支持objectAnimator。我将尝试解决你的问题。为此,你需要检查你的代码,因为它对我有效。