OptionsMenu появляется в двойном

1

У меня есть Fragment внутри Activity. Эта OptionsMenu содержит OptionsMenu.

Я использую FragmentTransaction для запуска нового экземпляра того же класса Fragment, когда я выбрал OptionsMenu, он отображается в double, потому что он загружается дважды.

Как я могу сделать, чтобы управлять OptionsMenu между фрагментами

Благодарю.

PS: Извините за английский

  • 0
    Можете ли вы опубликовать код?
  • 0
    Я нахожу часть решения. Я использую FragmentTransaction, а не новое намерение. Но мой новый вопрос - как управлять OptionMenu внутри фрагментов.
Теги:

3 ответа

0
Лучший ответ

Я нахожу решение,

Я создаю OptionsMenu только в Activity. Я также получаю OptionsItemsSelected в Activity.

Когда onOptionsItemSelected() происходит, я получаю текущий фрагмент следующим образом:

FragmentManager fg = getSupportFragmentManager();
Fragment frag = fg.findFragmentById(R.id.fragmentMap);

Все мои фрагменты имеют одинаковый идентификатор, но я всегда получаю Фрагмент сверху. Тогда я могу позвонить:

frag.onOptionsItemSelected(item);

для получения фрагмента, и мой пользовательский интерфейс правильно обновляется.

Я надеюсь, что это помогает.

0

Попробуйте сыграть с setHasOptionsMenu(boolean) в ваших расширяющихся классах Fragment, если для этого параметра установлено значение true, FragmentManager должен автоматически вызывать ваш текущий фрагмент onOptionsItemSelected, он установлен в false, вы можете вручную вызвать эти обратные вызовы самостоятельно в своей Activity onOptionsItemSelected.

Работал для меня... :)

0

Такой путь нет. Вы можете обращаться с BackPressed и показать свое собственное меню в виде новой fragmnet. Или управляйте своим меню параметров внутри бездействия FragmentTransaction в зависимости от вашего класса и содержимого фрагмента

Ещё вопросы

Сообщество Overcoder
Наверх
Меню