Dan*_*iel 26 flags android transition android-intent
我在堆栈中有两个活动,为了显示它们我使用FLAG_ACTIVITY_REORDER_TO_FRONT.到目前为止,当我想使用overridePendingTransition为动画带来动画时,问题就出现了.
Intent i = new Intent(ActivityA.this, ActivityB.class);
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
ActivityA.this.startActivity(i);
overridePendingTransition(R.anim.transition_to_right, R.anim.transition_to_left);
Run Code Online (Sandbox Code Playgroud)
但是,如果没有将标志添加到意图(删除第2行),则不会显示转换,则没有问题.
是否可以通过动画将活动带到前面?
非常感谢!
Dan*_*ato 38
实际上,使用REORDER_TO_FRONT时的正确解决方案是在要打开的活动的onNewIntent()方法中调用overridePendingTransition.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
Run Code Online (Sandbox Code Playgroud)
替换你的过渡.
如果您需要有选择地替换转换,您可以在意图中添加额外的内容,并在onNewIntent()中进行检查以确定要执行的操作.
如果您不知道将要打开的转换(例如,如果您没有明确指定它),则这不适合,否则是正确的解决方案.
bra*_*ey4 34
我遇到了同样的问题.诀窍是覆盖onResume()回调中的转换.
@Override
public void onResume() {
super.onResume();
overridePendingTransition(R.anim.transition_to_right, R.anim.transition_to_left);
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对我来说,解决方案是确保它在 UI 线程中运行
runOnUiThread(new Runnable() {
public void run() {
startActivity(new Intent(ActivityOne.this, ActivityTwo.class));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
});
finish();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33849 次 |
| 最近记录: |