Android:当SlidingMenu(jfeinstein)显示时完成活动

sig*_*ter 2 android back-button android-fragments slidingmenu

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

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

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

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

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

sig*_*ter 6

在稍微浏览SlidingMenu代码之后,我发现在SlidingFragmentActivity中覆盖了onKeyUp.所以要走的路是在你的活动中覆盖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);
}
Run Code Online (Sandbox Code Playgroud)