Работа с OptionsMenu во вложенном фрагменте не обновляется

Я показал фрагмент A, который реализует ViewPager с несколькими фрагментами (вложенными фрагментами).

В своих вложенных фрагментах я раздуваю меню следующим методом.

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.my_menu, menu);
    super.onCreateOptionsMenu(menu, inflater);
}

Этот вопрос уже задавали здесь. И я пробовал все ответы, это не работает.

Моя проблема: все работает нормально. Но когда я открываю другой фрагмент (в нем нет меню параметров) и возвращаюсь к предыдущему фрагменту пейджера просмотра, щелкая элемент меню onOptionsItemSelected, не срабатывает. Когда я прокручиваю фрагмент в viewpager и возвращаюсь к предыдущему, когда я нажимаю пункт меню, он срабатывает.


person user2634966    schedule 11.01.2017    source источник


Ответы (1)


Это потому, что viewpager поддерживает 3 фрагмента одновременно. поэтому, когда вы вернетесь, он установит статус видимости меню true для последнего фрагмента. вот почему ваш пункт меню не срабатывает.

Используйте следующее во фрагменте, где вы сохраняете просмотрщик в своем фрагменте случая A.

private boolean isInitial=true;

@Override
    public void onResume() {
        super.onResume();

        if (!isInitial) {
            int pos = viewpager.getCurrentItem();
            if (pageAdapter.getItem(pos).getUserVisibleHint() && pageAdapter.getItem(pos).isVisible()) {
                pageAdapter.getItem(pos).setMenuVisibility(true);
            }
        } else {
            isInitial = false;
        }
    }
person Nas    schedule 11.01.2017