F.A*_*.A. 28 java android activity-finish android-5.0-lollipop shared-element-transition
我正在努力使应用程序更具实质性,而我只是坚持如何实现一些共享元素转换.我有一个活动A,它启动另一个B然后调用finish()以便从后栈中删除它.在我的情况下,我有一个我想在两个活动之间分享的元素,但是一旦它从A传递到B,A就不再重要了.如果我在startActivity(ctx,intent,bundle)之后没有调用finish(),则退出/输入动画效果很好.但是,如果我打电话给完成,那么在动画开始之前会有一个非常丑陋的闪烁.
我有什么东西可以忽略,或者是不可能做我想做的事情?
ksa*_*kar 27
UPDATE
更好,更简单的方式
ActivityCompat. finishAfterTransition(this);
Run Code Online (Sandbox Code Playgroud)
<3支持库.
l-l*_*l-l 25
您可以在onStop函数中完成您的活动,如果您只想在从A转换为B时发生这种情况,那么在调用startActivity(ctx,intent,bundle)后创建一个标志并设置它:
@Override
public void onStop() {
super.onStop();
if(mShouldFinish)
finish();
}
Run Code Online (Sandbox Code Playgroud)
确保完成活动B后调用finish()而不是finishAfterTranstion(),因为活动A不再存在
完成活动A后,如果按后退,B中的共享元素可能会挂起.将transitionName设置为null ActivityB.onEnterAnimationComplete以避免这种情况.
这可能是晚了但我遇到了同样的问题.对我有用的是:
supportFinishAfterTransition();
Run Code Online (Sandbox Code Playgroud)
这包含在支持库中,就像魅力一样.
PS:你打电话finish()时不需要打电话supportFinishAfterTransition().
| 归档时间: |
|
| 查看次数: |
8607 次 |
| 最近记录: |