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 и Дж. Файнштейн.

Другие вопросы по тегам