我已经从列表活动开始了一个细节活动,并且使用ActivityCompat.startActivity()
对两个共享元素进行了动画处理,很明显地,当该活动的onBackPressed()
被称为平滑过渡时,就会被颠倒。
但是在我看来,这会带来问题; details活动利用滑动手势来逐一浏览listItem。当用户要返回时,平滑过渡会为错误的图像和标题添加动画效果,最后替换该行的实际图像和标题,这根本不会产生平滑过渡。
如果位置与原始单击位置不同,则在调用onBackPressed()
时,我尝试使用替换的fadeIn \ fadeOut动画进行活动,但是调用super.onBackPressed()
并不能解决问题。 / p>
这是方法:
@Override
public void onBackPressed() {
if (originalPosition != positionInParentList) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
return;
}
super.onBackPressed();
}
答案 0 :(得分:0)
替换语句的顺序,将super.onBackPressed();
置于if语句上方。
答案 1 :(得分:0)
尝试一下:
@Override
public void onBackPressed() {
super.onBackPressed();
if (originalPositionInParentList == positionInParentList) {
return;
}
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}