Android:如何在单击后退按钮时隐藏滑动菜单

时间:2012-10-09 07:50:36

标签: android android-actionbar android-sliding

我正在使用:

https://github.com/iPaulPro/SlidingMenu

库实现Facebook,如滑动菜单,以及ActionBarSherlock库。

我的案例中的BehindContentView是一个ListFragment。

1。单击图像以获取后视图(调用toggle();)。

2。 onListItemClicked转到Activity_2,显示所单击项目的文本。

第3。在此Activity_2中,当我单击设备后退按钮时,我得到主Activity_1但后面的View是打开的。通常在Facebook或Google+中,行为就是这样,当您从任何其他活动回到Activity_1时隐藏了LaterView。

4。此外,即使在拥有这些线之后,在Activity_2上,主页似乎不起作用(当我点击主页按钮时没有任何反应)。

    ActionBar bar = this.getSupportActionBar();
    bar.setDisplayHomeAsUpEnabled(true);
    bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
    bar.setHomeButtonEnabled(true);

如何解决第3步和第4步?

谢谢

4 个答案:

答案 0 :(得分:6)

SlidingMenu menu;

    @Override
public void onBackPressed() {
    if (menu.isMenuShowing()) {
        menu.showContent(true);
        return;
    }

    super.onBackPressed();
}

动臂。如果菜单已经用完,那么在活动中按下它就会消失

答案 1 :(得分:4)

隐藏滑动菜单

onListItemClicked上的

调用hide()或toggle()

对于Home按钮ActionBar它必须工作,只需像这样处理它

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // you code
        return true;
    }

答案 2 :(得分:3)

要隐藏滑动菜单并打开neede意图,您需要提供想要在点击时打开的意图。这是一个小例子

private SlideMenu slidemenu
// this is from code. no XML declaration necessary, but you won't get state restored after rotation.
slidemenu = new SlideMenu(this, R.menu.slide, this, 333);
// this inflates the menu from XML. open/closed state will be restored after rotation, but you'll have to call init.
slidemenu = (SlideMenu) findViewById(R.id.slideMenu);
slidemenu.init(this, R.menu.IntentName, this, 333);

我使用了coboltforge.slidemenu库。

我认为它在iPaulPro / SlidingMenu库中会类似。

答案 3 :(得分:0)

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        getSlidingMenu().toggle(true);
        return false;
    } else {
        return super.onKeyUp(keyCode, event);
    }
}

只需将其放入您的活动中即可。