Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在fragment中startActivity有一定几率不出现回退动画 #18

Closed
ShineYang opened this issue Jul 30, 2016 · 5 comments
Closed

在fragment中startActivity有一定几率不出现回退动画 #18

ShineYang opened this issue Jul 30, 2016 · 5 comments

Comments

@ShineYang
Copy link

ActivityAnimUtil.startActivity(getActivity(), FirstActivity.class, view, R.color.activity_anim);
当按返回键返回主activity中的fragment时,有一定几率不出现回退动画。

@XunMengWinter
Copy link
Owner

返回动画的机制大致是这样的:通过postDelayed(runnable,1000)让动画1秒后执行,但实际上1秒后该activity已经stop了,所以动画被延迟到了其activity返回时的onStart()后执行,有时候动画的时长较短,会被FirstActivity中的overridePendingTransition()淹没。还有,结束FirstActivity不能用finish,应该使用onBackPressed(),这样才会有返回动画。

@ShineYang
Copy link
Author

ok  我明白了  谢谢你的解答。

来自阿里邮箱 iPhone版 ------------------原始邮件 ------------------发件人:XunMengWinter notifications@github.com日期:2016-08-01 10:15:07收件人:XunMengWinter/CircularAnim CircularAnim@noreply.github.com抄送:ShineYang shineyang@shineyang.com, Author author@noreply.github.com主题:Re: [XunMengWinter/CircularAnim] 在fragment中startActivity有一定几率不出现回退动画 (#18)返回动画的机制大致是这样的:通过postDelayed(runnable,1000)让动画1秒后执行,但实际上1秒后该activity已经stop了,所以动画被延迟到了其activity返回时的onStart()后执行,有时候动画的时长较短,会被FirstActivity中的overridePendingTransition()淹没。还有,结束FirstActivity不能用finish,应该使用onBackPressed(),这样才会有返回动画。


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@vampire184
Copy link

返回动画的机制大致是这样的:通过postDelayed(runnable,1000)让动画1秒后执行,但实际上1秒后该activity已经stop了,所以动画被延迟到了其activity返回时的onStart()后执行,有时候动画的时长较短,会被FirstActivity中的overridePendingTransition()淹没。还有,结束FirstActivity不能用finish,应该使用onBackPressed(),这样才会有返回动画。

作者您好,被淹没的这种情况,有没有好的解决办法呢?我在Android10的手机上很容易出现这种问题

@vampire184
Copy link

返回动画的机制大致是这样的:通过postDelayed(runnable,1000)让动画1秒后执行,但实际上1秒后该activity已经stop了,所以动画被延迟到了其activity返回时的onStart()后执行,有时候动画的时长较短,会被FirstActivity中的overridePendingTransition()淹没。还有,结束FirstActivity不能用finish,应该使用onBackPressed(),这样才会有返回动画。

我在android10的手机上发现即使启动了第二个界面(非透明),延迟动画依然执行了。貌似不会像之前的系统那样,activity不可见之后,动画不执行。

@vampire184
Copy link

我这边修改了源码,把返回动画的那段代码提取成了一个方法,延迟改成了100ms(如果不设置延迟,有一定概率不显示动画,我估计是activity还没有显示好就执行了,导致动画没出来)。然后在onActivityResult中进行调用,这样保证了每次都能够显示返回动画,但是这样以来破坏了整体性,没有之前使用方便了。作者如果有好的方法可以告诉我。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants