我从一个列表活动开始了一个细节活动,并且已经使用ActivityCompat.startActivity()
对几个共享元素进行了动画处理,显然,当活动的onBackPressed()
称为平滑过渡时,平滑过渡是相反的。
但就我而言,它会产生一个问题;细节活动利用滑动手势逐个浏览列表项;当用户即将返回时,平滑过渡会为错误的图像和标题设置动画,最终替换该行的实际图像和标题,这根本不会创建平滑过渡。
如果位置与原始单击的位置不同,则在调用onBackPressed()
时,我正在尝试对活动使用替换 fadeIn\fadeOut 动画,但调用super.onBackPressed()
不会产生魔力。
方法是:
@Override
public void onBackPressed() {
if (originalPosition != positionInParentList) {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
return;
}
super.onBackPressed();
}
替换语句的顺序,将super.onBackPressed();
放在 if 语句上方。
试试这个:
@Override
public void onBackPressed() {
super.onBackPressed();
if (originalPositionInParentList == positionInParentList) {
return;
}
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}