我使用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()
}
我想检查滑动菜单是否打开,然后先关闭滑动菜单,然后再绘制导航。怎么做?
非常感谢。
答案 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。