Tia*_*ago 41 animation android transition button back
在我的活动中,我有一个按钮,其中包含以下点击监听器:
final ImageButton startOverButton = (ImageButton) findViewById(R.id.start_over_button);
startOverButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(final View v) {
finish();//go back to the previous Activity
overridePendingTransition(R.anim.comming_in, R.anim.comming_out);
}
});
Run Code Online (Sandbox Code Playgroud)
它以我想要的方式动画返回上一个活动.但是,当用户按下Android默认后退按钮时,不会触发动画.我的问题是:我应该在哪里放置动画代码overridePendingTransition(R.anim.comming_in,R.anim.comming_out); 这样当用户点击我的按钮和默认的Android后退按钮时,这个动画都会被触发?
作为一个天真的尝试,我试图把overridePendingTransition(R.anim.comming_in,R.anim.comming_out); onDestroy()方法中的代码行但它不起作用.
先感谢您!
Tao*_*ang 107
也许你可以在活动中的onBackPressed()方法中做这项工作.
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.comming_in, R.anim.comming_out);
}
Run Code Online (Sandbox Code Playgroud)
小智 15
基本上覆盖onBackPressed是一种正确的方法,但不是从它调用finish(),我会说最好调用super.onBackPressed()然后添加overridePendingTransition,这样我们就可以更加符合继承规则了.
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.comming_in, R.anim.comming_out);
}
Run Code Online (Sandbox Code Playgroud)
即使覆盖onBackPressed()
是一个不错的选择,我还是建议覆盖该finish()
方法,以防万一活动以其他方式完成,例如导航操作或“破坏”活动的任何其他视图操作:
@Override public void finish() {
super.finish();
overridePendingTransition(0,0);
}
Run Code Online (Sandbox Code Playgroud)
我们需要考虑到这个方法会在按下后退按钮后被触发,所以我们很高兴:-)
更新:此外,onBackPressed()
如果我们在其中使用片段,覆盖可能会弄乱 Activity,因为我们可能不想在每次按下后退时覆盖转换。
归档时间: |
|
查看次数: |
42198 次 |
最近记录: |