Android: Wie man die Aktionsleiste neu erstellt, wenn das Fragment geändert wurde
Habe ich eine Aktivität zeigen, ein paar Fragmente.
Die Ansicht "Aktivität" enthält nur ViewPager initialisiert mit benutzerdefinierten FragmentPagerAdapter.
Dieser adapter navigation bieten unter 3 Fragmenten.
Scheint alles zu funktionieren, außer Action-bar.
Ich überschreiben onCreateOptionsMenu () - Methode, die in meinem Fragmente zu erstellen, die einzelnen Action-bar für jeden Teil:
@Override public void onCreateOptionsMenu(Menü Menü, MenuInflater inflater) { super.onCreateOptionsMenu(Menü, inflater); Menü.clear();
//fragment specific menu creation
}
Wenn ich streichen, neue fragment wird, aber die Action bar, die die gleichen bleiben für ein paar Sekunden. Wahrscheinlich nach ein paar Sekunden wird diese Methode aufgerufen und die Action bar geändert.
Das sieht ziemlich schlecht aus, wenn action bar geändert in eine Weile nach dem streichen fertig ist.
Wie kann ich neu Aktionsleiste sofort, vor dem streichen beginnen?
InformationsquelleAutor der Frage mc.dev | 2013-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Fragen, android neu zu erstellen die actionbar, bevor es automatisch durch den Aufruf
invalidateOptionsMenu();
Tun, das irgendwo in der Nähe der Stelle, wo ändern Sie die Fragmente, um zu versuchen und verringern die 'lag' zwischen dem fragment und actionbar ändern.
Bearbeiten
eine komplette Lösung könnte wie folgt Aussehen:
welches fragment ist geöffnet während der
dann rufen seine
ist, und Sie können fragment-spezifischen Menü-Erstellung in es
InformationsquelleAutor der Antwort roarster
Es kann getan werden durch die Umsetzung onCreateOptionsMenu und ruft setHasOptionsMenu(true) in der onAttach callback in jedem fragment und ändern Sie die Aktionen entsprechend.
Zeigen das fragment ohne irgendwelche Aktionen setHasOptionsMenu(false)
InformationsquelleAutor der Antwort Kumait
Wenn Sie mit ActionBar-tabs, die Sie möchten, um zu sehen, diese Antwort:
Wie kann ich das ändern Aktionsleiste auf Aktionen dynamisch?
InformationsquelleAutor der Antwort David
Schließlich konnte ich nicht finden keine sound Weg, dies zu erreichen.
Die besten sein würde, um die actionbar ein Teil des fragments, keine Aktivität, aber es ist unmöglich.
Ich am Ende mit clearing actionbar Menü-und Titel-beim streichen beginnt(Sie können spezielle listener bei Seitenaufruf) und Einstellungs-Menü und Titel wieder streichen, wenn vollständige und neue fragment gezeigt werden.
Gibt einige Zeit lag und die actionbar sieht seltsam leer, während streichen, aber es ist am besten, die Sie tun können.
Android-API ist c...
InformationsquelleAutor der Antwort mc.dev