2

我正在尝试在我的应用程序中实现 jfeinstein 创建的滑动菜单。我想要实现的行为是,当我按下后退按钮并且菜单没有显示时,它会显示出来。这很好用。但是,当菜单显示时,按下后退按钮应该完成当前活动。相反,滑动菜单再次关闭。

为了实现所描述的行为,我覆盖了 onBackPressed:

@Override
public void onBackPressed()
{
    SlidingMenu sm = getSlidingMenu();
    if(!sm.isMenuShowing())
    {
        sm.showMenu();
    }
    else
    {
        finish();
    }
}

但是一旦滑动菜单显示 onBackPressed 就不再被调用。我怀疑我必须使用 SlidingFragmentActivity 按下后退按钮触发片段历史堆栈弹出。

有谁知道如何解决这个问题?

4

1 回答 1

6

在进一步浏览 SlidingMenu 代码后,我发现 onKeyUp 在 SlidingFragmentActivity 中被覆盖。所以要走的路是在你的活动中覆盖 onKeyUp 。

@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
    if(keyCode == KeyEvent.KEYCODE_BACK)
    {
        SlidingMenu sm = getSlidingMenu();
        if(sm.isMenuShowing())
        {
            finish();
            return true;
        }
    }
    return super.onKeyUp(keyCode, event);
}
于 2013-06-17T19:22:13.027 回答