【问题标题】:Making back button and action bar back the same使返回按钮和操作栏返回相同
【发布时间】:2014-01-26 02:42:29
【问题描述】:

例如,我有 2 个活动,分别名为 Main 和 Photos。我从 Main 开始照片。当我在照片活动打开时按下后退按钮时,我的导航抽屉菜单仍然处于选中状态。但是,如果我按操作栏上的后退菜单,主活动会刷新,因此选择会消失。我想在返回按钮上应用操作栏返回的事件。我该怎么办?

【问题讨论】:

  • 如果我的回答为您指明了正确的方向,请立即将其标记为已接受的答案,谢谢

标签: android


【解决方案1】:

最好让你的动作栏按钮实现androids后退按钮动作而不是反之亦然,但是,它可以做到。

// Newer, but Im not sure what API version it came in
@Override
public void onBackPressed() {
    //super.onBackPressed();
    mMyAbBackBtn.callOnClick();
}

// Older, still supported
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (KeyEvent.KEYCODE_BACK == keyCode) {
        mMyAbBackBtn.callOnClick();
        return true; //handled
    }
    return super.onKeyUp(keyCode, event);
}

【讨论】:

    【解决方案2】:

    “操作栏上的后退按钮”实际上称为向上按钮。只是为了澄清差异:后退按钮将您返回到上一个活动(这可能会将您带到不同的应用程序),而 向上按钮将使您返回到上一个活动在当前应用中

    我很困惑你怎么同时有一个向上按钮和一个navigation drawer,你能放一些截图吗?

    假设您的“导航抽屉菜单”不是您所说的 android 的本机部分,我不建议您覆盖您的后退按钮以获得所需的行为。

    请考虑覆盖 onActivityCreatedonResume

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(); // don't restore the state
        // alternatively:
        // super.onActivityCreated(savedInstanceState); // you may have other things you
                                                        // want to preserve
        // unSelect(); // your code to unselect whatever your navigation menu drawer is
    }
    
    @Override
    public void onResume()
    {
        super.onResume();
        unSelect(); // your code to unselect whatever your navigation menu drawer is
    }
    

    【讨论】:

      猜你喜欢
      • 2012-08-17
      • 2013-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多