Java Android碎片转换问题

Java Android碎片转换问题,java,android,android-fragments,animation,fragment,Java,Android,Android Fragments,Animation,Fragment,当使用下面的代码从一个片段HelloAfragment转换到HelloBfragment时,如何在从HelloAfragment转换到HelloBfragment时添加延迟 TAG = HelloFrament.class.getSimpleName(); fragmentManager.beginTransaction() .setCustomAnimations(R.anim.slide_in_left,R.anim.slide_out_right)

当使用下面的代码从一个片段HelloAfragment转换到HelloBfragment时,如何在从HelloAfragment转换到HelloBfragment时添加延迟

   TAG = HelloFrament.class.getSimpleName();
   fragmentManager.beginTransaction()
           .setCustomAnimations(R.anim.slide_in_left,R.anim.slide_out_right)
            .replace(HelloAfragment.getId(), HelloBfragment, TAG)
            .addToBackStack(TAG)
            .commit();
尝试以下代码

            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
            fragmentManager.addOnBackStackChangedListener(this);
            fragmentTransaction.replace(R.id.frame, firstFragment, "h");
            fragmentTransaction.addToBackStack("h");
            fragmentTransaction.commit();
尝试以下代码

            FragmentManager fragmentManager = getSupportFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
            fragmentManager.addOnBackStackChangedListener(this);
            fragmentTransaction.replace(R.id.frame, firstFragment, "h");
            fragmentTransaction.addToBackStack("h");
            fragmentTransaction.commit();

您只需做一点小改动,就可以使用左侧幻灯片中的以下代码

<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/linear_interpolator"
       android:fromXDelta="1000" android:toXDelta="0"
       android:duration="700"/>

这是幻灯片的代码

<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_decelerate_interpolator"
       android:fromXDelta="0" android:toXDelta="-1000"
       android:duration="700"/>

您只需做一点小改动,就可以在左侧幻灯片中使用下面的代码

<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/linear_interpolator"
       android:fromXDelta="1000" android:toXDelta="0"
       android:duration="700"/>

这是幻灯片的代码

<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator="@android:anim/accelerate_decelerate_interpolator"
       android:fromXDelta="0" android:toXDelta="-1000"
       android:duration="700"/>

我无法实现两个片段之间的转换,因此我最终将目标片段更改为活动,并使用下面的代码进行活动

       View imageView = findViewById(R.id.imageView);
    View textView = findViewById(R.id.textView);
    View button = findViewById(R.id.button);

    Intent intent = new Intent(this, EndActivity.class);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        textView.setTransitionName(getString(R.string.activity_text_trans));
        button.setTransitionName(getString(R.string.activity_mixed_trans));

        Pair<View, String> pair1 = Pair.create(imageView, imageView.getTransitionName());
        Pair<View, String> pair2 = Pair.create(textView, textView.getTransitionName());
        Pair<View, String> pair3 = Pair.create(button, button.getTransitionName());
        ActivityOptionsCompat options = ActivityOptionsCompat.
                makeSceneTransitionAnimation(this, pair1, pair2, pair3);
        startActivity(intent, options.toBundle());
    }
    else {
        startActivity(intent);
    }
}
View-imageView=findviewbyd(R.id.imageView);
View textView=findViewById(R.id.textView);
查看按钮=findViewById(R.id.button);
意向意向=新意向(此,EndActivity.class);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.LOLLIPOP){
setTransitionName(getString(R.string.activity_text_trans));
setTransitionName(getString(R.string.activity_mixed_trans));
pair1=Pair.create(imageView,imageView.getTransitionName());
pair2=Pair.create(textView,textView.getTransitionName());
pair3=Pair.create(button,button.getTransitionName());
ActivityOptionsCompat选项=ActivityOptionsCompat。
makeScenetTransitionAnimation(这个,pair1,pair2,pair3);
startActivity(intent,options.toBundle());
}
否则{
星触觉(意向);
}
}

我无法实现两个片段之间的转换,因此我最终将目标片段更改为活动,并使用下面的代码进行活动

       View imageView = findViewById(R.id.imageView);
    View textView = findViewById(R.id.textView);
    View button = findViewById(R.id.button);

    Intent intent = new Intent(this, EndActivity.class);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        textView.setTransitionName(getString(R.string.activity_text_trans));
        button.setTransitionName(getString(R.string.activity_mixed_trans));

        Pair<View, String> pair1 = Pair.create(imageView, imageView.getTransitionName());
        Pair<View, String> pair2 = Pair.create(textView, textView.getTransitionName());
        Pair<View, String> pair3 = Pair.create(button, button.getTransitionName());
        ActivityOptionsCompat options = ActivityOptionsCompat.
                makeSceneTransitionAnimation(this, pair1, pair2, pair3);
        startActivity(intent, options.toBundle());
    }
    else {
        startActivity(intent);
    }
}
View-imageView=findviewbyd(R.id.imageView);
View textView=findViewById(R.id.textView);
查看按钮=findViewById(R.id.button);
意向意向=新意向(此,EndActivity.class);
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.LOLLIPOP){
setTransitionName(getString(R.string.activity_text_trans));
setTransitionName(getString(R.string.activity_mixed_trans));
pair1=Pair.create(imageView,imageView.getTransitionName());
pair2=Pair.create(textView,textView.getTransitionName());
pair3=Pair.create(button,button.getTransitionName());
ActivityOptionsCompat选项=ActivityOptionsCompat。
makeScenetTransitionAnimation(这个,pair1,pair2,pair3);
startActivity(intent,options.toBundle());
}
否则{
星触觉(意向);
}
}

change-android:duration=“700”在左幻灯片中。xmlSee@mohitSuthar我确实在左幻灯片中添加了持续时间,但dint workchange-android:duration=“700”在左幻灯片中。xmlSee@mohitSuthar我确实在左幻灯片中添加了持续时间,但dint Work将此代码用于android studio提供的动画<代码>fragmentTransaction.setCustomAnimations(android.R.anim.slide\u在左,android.R.anim.slide\u在右)将此代码用于android studio提供的动画<代码>fragmentTransaction.setCustomAnimations(android.R.anim.slide\u在左,android.R.anim.slide\u在右)我尝试了全部,最后使用了一个活动而不是片段我尝试了全部,最后使用了一个活动而不是片段