J. Feinstein Скользящее меню проверить, если открыто
Я использовал библиотеку Дж. Файнштейна, чтобы сделать потрясающее скользящее меню (спасибо Дж. Файнштейну), но мне нужно знать, открыто или закрыто скользящее меню. Мне нужно знать, потому что я реализовал панель действий ABC, когда в некоторых условиях открылось скользящее меню, и пользователь может открыть навигационную панель и затемнить мое приложение (наложение из навигационной панели).
Я знаю из документации, slideMenu.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 ответ
Если вам нужно проверить, открывалось или закрывалось скользящее меню, вы можете использовать этот код ниже:
// 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);
}
Я надеюсь, что это решение поможет другим. Спасибо за Stackru и Дж. Файнштейн.