如何在onKeyDown的方法中控制SlidingMenu

时间:2013-06-03 01:48:21

标签: android onkeydown slidingmenu

我想实现这个功能,当我点击手机上的“后退”按钮时,菜单会显示。然后我写下面的代码:

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if ((keyCode == KeyEvent.KEYCODE_BACK) &&(event.getRepeatCount() == 0)) {
            if(!getSlidingMenu().isMenuShowing()){
                toggle();
                //getSlidingMenu().showMenu();
            }

但事实上,如果“getSlidingMenu()。isMenuShowing()== true”菜单将被解除。如果(!getSlidingMenu()。isMenuShowing()),菜单将只出现一个短时间,然后自动解散。我想要的是菜单只是显示。

1 个答案:

答案 0 :(得分:0)

在按下Android设备中的“后退”按钮时调用onBackPressed。

因此,您需要覆盖前面提到的onBackPressed。你的逻辑部分正确,但它必须在onBackPressed内部

以下代码片段应该有效(如果我理解您的问题):

public void onBackPressed() 
{   
    if (!getSlidingMenu().isMenuShowing()) {
        super.toggle();
    } else {
        super.onBackPressed(); // invoke super's method or other logic?
    }

}

以下是Android onBackPressed()的文档 - 在API级别5中添加

Called when the activity has detected the user's press of the back key. The 
default implementation simply finishes the current activity, but you can override 
this to do whatever you want.