J. Feinstein滑动菜单检查是否打开

时间:2014-06-11 18:28:57

标签: android slidingmenu jfeinstein

我使用J. Feinstein库制作了很棒的滑动菜单(感谢J. Feinstein),但我需要知道滑动菜单是打开还是关闭。我需要知道,因为我已经实现了ABC操作栏,在某些情况下,滑动菜单打开,用户可以打开导航抽屉,让我的应用程序变暗(从导航抽屉覆盖)。

我从文档中知道,slidingMenu.toggle()可以自动检查滑动菜单的状态,无论是关闭还是打开(如果是打开,它将被关闭,反之亦然)。但是请看下面的代码:

            @Override
            public void onDrawerOpened(View drawerView) {
                // here i wanna check if sliding menu opened or closed
                if(isOpened)
                  // if is opened then close the sliding menu first
                  menu.toggle();

                super.onDrawerOpened(drawerView);
                if (!isAdded()) {
                    return;
                }

                if (!mUserLearnedDrawer) {
                    mUserLearnedDrawer = true;
                    SharedPreferences sp = PreferenceManager
                            .getDefaultSharedPreferences(getActivity());
                    sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).commit();
                }

                getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu()
            }

我想检查滑动菜单是否打开,然后先关闭滑动菜单,然后再绘制导航。怎么做?

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果您需要检查滑动菜单是打开还是关闭,您可以使用以下代码:

// Check whether sliding menu is opened or closed
if(menu.isMenuShowing()){
  //Do action here
}

在我的情况下,我需要首先关闭滑动菜单,然后打开导航抽屉,所以在这里代码:

@Override
public boolean onCreateOptionsMenu(Menu menuActionBar) {
  if (!mNavigationDrawerFragment.isDrawerOpen()) {
    getMenuInflater().inflate(R.menu.main, menuActionBar);
    restoreActionBar();
    return true;
  }else{
    if(menu.isMenuShowing()){
      menu.toggle();
    }
  }
  return super.onCreateOptionsMenu(menuActionBar);
}

我希望这个解决方案可以帮助别人。感谢Stackoverflow和J. Feinstein。