Android 自定义后退按钮动画
按下“后退”按钮时的默认动画是从左向右滑动。我想用一个自定义动画来代替它。我目前认为onBackPressed和overridePendingTransition的一些组合会起作用,但我一直没能让它工作。找到了答案。我没有找到当前的活动。下面的代码实现了这一点Android 自定义后退按钮动画,android,Android,按下“后退”按钮时的默认动画是从左向右滑动。我想用一个自定义动画来代替它。我目前认为onBackPressed和overridePendingTransition的一些组合会起作用,但我一直没能让它工作。找到了答案。我没有找到当前的活动。下面的代码实现了这一点 @Override public void onBackPressed() { [This Activity].this.finish(); overridePendingTransition(R.anim.fade_in, R.
@Override
public void onBackPressed() {
[This Activity].this.finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
我认为您不应该使用finish,因为视图存储的数据将被擦除
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
}
如果你不想要动画 遵循活动中的代码 参考: ,int我不会使用onBackPressed,因为当我们使用片段时,这是一种黑客行为,例如,我们需要处理堆栈。我在这里提出了一个更优雅的解决方案:
包括一些示例代码,否则我们不知道您可能做错了什么。请注意super,它需要在它之后,否则没有效果。@Chris.Jenkins,如果您正在告诉overridepending。。应该在超级之后,然后是的。它应该是在任何结束呼叫之后。超级联赛基本上结束了。因此,在这种情况下,超车应该在完成或超车后进行。现在,有没有办法做到这一点,除了最后一次按下后退按钮,这将退出你的应用程序?i、 e.有没有办法检查后堆栈,看看你的应用程序是否还在上面?@Chris.Jenkins,这是错误的。overridePendingTransition始终位于最后。当调用一个意图overridePendingTransition时,它是最后一个,即使在上面的示例中,overridePendingTransition也是最后一个。效果确实有效。我想为那些可能从Chris的commentsuper.on中获得错误信息的人澄清这一点。backpressed自动调用finish。使用它,而不是手动调用finish。。
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(0,0);
}