将 overridePendingTransition 与 recreate() 结合使用。可以做到吗?
Posted
技术标签:
【中文标题】将 overridePendingTransition 与 recreate() 结合使用。可以做到吗?【英文标题】:Use overridePendingTransition in conjuction with recreate(). Can it be done? 【发布时间】:2017-06-29 10:32:21 【问题描述】:我一直在使用 android 的 overridePendingTransition 方法为我的活动页面转换设置动画,并取得了巨大成功。示例显示
startActivity(new Intent(GetTagActivity.this, MainActivity.class));
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
我有一种情况需要“刷新”页面并希望进行淡入淡出过渡。不深入细节,我不能使用StartActivity(...)
方法来调用刷新(这将允许动画调用)。
使用recreate()
可以完美地“刷新”页面,但是我无法添加过渡动画。这没有奏效。
recreate();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
也不是这个
recreate().overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
淡入淡出动画(或任何活动过渡)可以与 recreate() 一起使用吗?
【问题讨论】:
finish()
后跟 startActivity()
怎么样?
这方面有什么更新吗?我偶然发现了同样的要求。
没有专门针对这个问题的更新,但是自从这篇文章以来,我已经学会了如何将活动标志与 onNewIntent 结合使用,这使我能够通过 startActivity() 调用来模拟 recreate() 并使用动画.并非适用于所有情况,但值得研究。
【参考方案1】:
你可以使用这个(Kotlin 代码)
override fun recreate()
finish()
startActivity(Intent(this,this.javaClass))
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
【讨论】:
我的问题特别指出不要使用 startActivity() 方法。以上是关于将 overridePendingTransition 与 recreate() 结合使用。可以做到吗?的主要内容,如果未能解决你的问题,请参考以下文章
Javascript 将正则表达式 \\n 替换为 \n,将 \\t 替换为 \t,将 \\r 替换为 \r 等等