onprepareoptionsmenu change activity android menu android-toolbar android-nested-fragment

android - change - oncreateoptionsmenu fragment



Trabajar con OptionsMenu en fragmentos anidados sin actualizar (1)

Mostré un fragmento A que implementa una ViewPager con varios fragmentos (fragmentos anidados).

En mis fragmentos anidados, inflico un menú con el siguiente método.

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

Esta pregunta ya fue hecha aquí . Y probé todas las respuestas, no funcionaba.

Mi problema es que todo funciona bien, pero cuando abro otro fragmento (no tiene ningún menú de opciones) y vuelvo al fragmento del buscapersonas previo a la vista, al hacer clic en el elemento del menú enOptionsItemSelected no se activa. Cuando deslizo el fragmento en el visor y vuelvo al anterior, cuando hago clic en elemento de menú, lo enciendo.


Es porque viewpager mantiene 3 fragmentos vivos a la vez. así que cuando vuelves, establece el estado de visibilidad del menú verdadero al último fragmento. Es por eso que su elemento de menú haga clic en no disparar.

Usa lo siguiente en el fragmento donde guardas un viewpager en tu caso fragmento 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; } }