我正在尝试在我的应用中实现jfeinstein创建的滑动菜单。我想要实现的行为是,当我按下后退按钮并且菜单没有显示时,它将显示出来。这非常有效。 但是当菜单显示时,按后退按钮应该完成当前活动。相反,滑动菜单会再次关闭。
为了实现所描述的行为,我覆盖了onBackPressed:
@Override
public void onBackPressed()
{
SlidingMenu sm = getSlidingMenu();
if(!sm.isMenuShowing())
{
sm.showMenu();
}
else
{
finish();
}
}
但是只要滑动菜单显示onBackPressed就不再被调用了。我怀疑因为我必须使用SlidingFragmentActivity按下后退按钮才会触发片段历史记录堆栈弹出。
有人知道如何解决这个问题吗?
答案 0 :(得分: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);
}