Java Android碎片转换问题
当使用下面的代码从一个片段HelloAfragment转换到HelloBfragment时,如何在从HelloAfragment转换到HelloBfragment时添加延迟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)
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在右)代码>我尝试了全部,最后使用了一个活动而不是片段我尝试了全部,最后使用了一个活动而不是片段