Próbuję pokazać/ukryć elementy w moim pasku akcji w zależności od tego, który fragment jest widoczny.Zmiana stanu menu paska akcji w zależności od fragmentu
W moim główną działalność Mam następujący
/* Called whenever invalidateOptionsMenu() is called */
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if(this.myFragment.isVisible()){
menu.findItem(R.id.action_read).setVisible(true);
}else{
menu.findItem(R.id.action_read).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
Działa to doskonale jednak, gdy urządzenie jest obracany jest problemem. Po zakończeniu rotacji naPrepareOptionsMenu jest wywoływany ponownie jednak ten czas this.myFragment.isVisible() zwraca wartość false ... i dlatego element menu jest ukryty, gdy wyraźnie widoczny jest fragment (w zakresie pokazanym na ekranie).
Nie jesteś pewien, ale czy używasz tego samego fragmentu zarówno w trybie pionowym, jak i poziomym, czy też dodajesz inne fragmenty w trybie poziomym? Podczas rotacji po ponownym zainicjowaniu się jesteś pewien, że dołącza się do FragmentActivity. Możesz to sprawdzić za pomocą fragment.isAdded()? –
Tak, w działaniu na metodęCreate robię: this.myFragment = new MyListFragment(); a następnie this.myFragment odwołuje się przez całą aktywność –