如何在活动后按时覆盖共享元素平滑过渡?



我从一个列表活动开始了一个细节活动,并且已经使用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);
}

相关内容

最新更新