8.自定义BACK按键

8.1 问题

应用程序要以自己的方式来处理用户按下物理BACK按键后的行为。

8.2 解决方案

(API Level 5)
可以在Activity中使用onBackPressed()回调方法或者在Fragment中操作回退栈。

8.3 实现机制

如果想要用户在你的Activity上按下BACK按键时可以得到相应通知,可以覆写onBackPressed()方法,如下所示:

    @Override
    public void onBackPressed() {
        //实现自定义返回功能

        //调用super以进行常规处理(例如销毁Activity)
        super.onBackPressed();
    }

这个方法的默认实现会将当前回退栈中的Fragment弹出并且销毁Activity。如果不打算改变这个流程,只需要确保调用父类的实现来保存这种常规的处理方式。

警告:
覆写物理按键事件时应保持慎重。在Android系统中,所有的物理按键都有一致的功能,如果这些按键的功能变化太大,会让用户感到困惑和不满。

###BACK操作和Fragment
当UI中包含Fragment时,可以进一步自定义设备的BACK按键的行为。默认情况下,在UI中添加或替换Fragment的操作并不会在任务的回退栈中添加相应的Fragment,因此当用户按下BACK按键后,并不能够回退这些动作。但是,所有的FragmentTransaction都可以作为条目通过简单地调用addToBackStack()(在事务提交前&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值