Ich habe listfragment, das den actionmode startet. Ich benutze Actionbarsherlock. Aber wenn sich die Ausrichtung ändert oder wenn ich eine neue Aktivität starte, wird die Kontext-Aktionsleiste ausgeblendet. Gibt es eine Möglichkeit, es wiederherzustellen, ohne es erneut zu starten? In google gmail App bleibt es auf dem Bildschirm, ob ich Telefon rotiere oder auf den Detailbildschirm gehe.Aktionsmode nach der Änderung der Orientierung wiederherstellen
Antwort
Der bessere Weg ist onSaveInstanceState verwenden ActionMode Zustand vor der Drehung zu speichern.
public abstract class MyActivity extends SherlockFragmentActivity{
private boolean isInActionMode = false;
@Override
public void onCreate(Bundle state){
super.onCreate(state);
if (state != null && state.getBoolean("ActionMode", false)){
startActionMode(new MyActionMode());
}else{
///whatever you'd normally do
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
// Save isInActionMode value
outState.putBoolean("ActionMode", isInActionMode);
super.onSaveInstanceState(outState);
}
public void onWhateverEventNormallyStartsYourActionMode(){
startActionMode(new MyActionMode());
}
public class MyActionMode implements ActionMode.Callback{
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
isInActionMode = true;
///whatever you'd normally do
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
///whatever you'd normally do
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
///whatever you'd normally do
}
@Override
public void onDestroyActionMode(ActionMode mode) {
isInActionMode = false;
}
}
}
Aktualisiert nach Sarans Kommentar.
Sollte put 'isInActionMode = true;' nur in 'onCreateActionMode()' sonst nächste Drehung wird nicht den Zustand übernehmen . – Saran
Dadurch wird der Aktionsmodus nicht wirklich wiederhergestellt. Es schafft es neu. Also müssen Sie den Action-Modus-Titel neu erstellen und alle Elementauswahlen wiederholen. – faizal
Natürlich. Sie müssen den Status dynamischer Daten (z. B. Auswahlen) speichern und später wiederherstellen. – galex
- 1. showSoftInput funktioniert nicht nach der Änderung der Orientierung
- 2. TextView im Menü ist immer Null nach Änderung der Orientierung
- 3. getActivity() in Fragment ist Null nach Änderung der Orientierung
- 4. Registerkarte Inhalt bleibt sichtbar nach dem Ändern der Registerkarte nach der Änderung der Orientierung
- 5. Rotate UIButton auf Änderung der Orientierung
- 6. Programmatically Änderung der Orientierung von ViewController ohne Unterklasse UINavigationController
- 7. Chronometer startet bei Änderung Orientierung
- 8. Programmatic Autolayout Änderungen innerhalb von UITableViewCell aktualisiert nur nach Änderung der Orientierung
- 9. Nach Änderung der Orientierung viewPager wird Raum im unteren Teil des Bildschirms verlassen
- 10. UIPageViewController auf UINavigationController relayout seine Kind Viewcontroller seit der Änderung der Orientierung
- 11. Android: Dialog usw. wiederherstellen nach der Drehung
- 12. Wiederherstellen Recyclerview nach der Rotation mit onRestoreInstanteState()
- 13. Android: notifyDataSetChanged() nicht listview nach der Orientierung ändern
- 14. So wiederherstellen Sie Collaping Toolbar Layout Status nach Änderung der Bildschirmausrichtung
- 15. Wie kann ich ein Verzeichnis wiederherstellen, das nach der Änderung von CVS gelöscht wurde?
- 16. Wiederherstellen der Hive-ORC-Tabelle nach dem Ändern der Quellenposition?
- 17. WooCommerce: Trigger-Ereignis nach Änderung der Variation
- 18. Entlassen Dialog nach Änderung der Bildschirmausrichtung
- 19. App Absturz nach Änderung der Berechtigung
- 20. Anordnen von Fenstern nach Änderung der Auflösung
- 21. Wie loswerden Verzögerung nach Änderung der Aktivität?
- 22. Änderung der Spaltenwerte nach Timedelta und Index
- 23. Sortierung wird nach Änderung der Datenquelle gelöscht
- 24. Schriftgröße ändern nach der Orientierung Siebwechsel zu horizontalen
- 25. Wiederherstellen der formatierten Partition
- 26. Wiederherstellen der Datenbank
- 27. Wiederherstellen der Datenbank Benutzeranmeldefehler
- 28. Wiederherstellen der Postgresql-Datenbank
- 29. Angular 2 - Änderung der Nachbareingangsvariable bei Änderung der Eingangsvariablen
- 30. Cursorposition wiederherstellen nach contenteditable Ändern
überprüfen Sie diese abs Frage Thread: https://github.com/JakeWharton/ActionBarSherlock/issues/463 – newbyca