Ich entwickle Android-Anwendung mit mehreren Fragment in einer Aktivität. Ich benutze Rasteransicht innerhalb des Fragments. Wenn ich das Fragment ändere und dann den Stapel auf das alte Fragment zurücksetze, wurde die Bildlaufposition der Rasteransicht auf die Position Null geändert. Wie behält man die Scroll-Position der Rasteransicht nach dem Fragment-Popup-Stack?Wie wird die Scroll-Position der Rasteransicht nach dem Fragment-Popup-Stapel beibehalten?
Antwort
Nun, tue dies
in Ihnen onCreateView() -Methode
GridAdapter yourGridAdapter;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
if(yourGridAdapter ==null){
yourGridAdapter = new GridAdapter();
}
GridView gridView = (GridView) convertView.findViewById(R.id.your_grid_view);
gridView.setAdapter(yourGridAdapter);
...
}
Erläuterung:
Wenn ein Fragment von Pop zurück Stapeln auf seiner onCreateView() und ein Verfahren nach dem in Fragmente neu geladen wird lebenszyklus bis OnResume() get aufgerufen und wenn Sie den Adapter in OnCreateView() -Methode wieder instanziiert werden die GridView-Elemente wieder erstellt, aber wenn Sie nicht instanziieren wird der gleiche Adapter an die GridView angefügt werden.
Vielen Dank für Ihre Lösung. Ich kann die Scroll-Position beibehalten. aber wenn ich bis zum Ende von GridView blättern (letztes GridView-Objekt) und dann zum nächsten Fragment gehe, war es nach dem Back-Stack-Fragment falsche Scroll-Position. ansonsten rechte Bildlaufposition. Hast du noch eine Idee? – Sopheak
Die Verwendung von GridLayoutManager mit RecyclerView kann helfen, weil ich nicht viel Ahnung von GridView habe –
- 1. Rasteransicht nach der Suche aktualisieren
- 2. Ausgewählter Hintergrund der Rasteransicht Element verschwindet nach dem Bildlauf
- 3. Android: Element aus der Rasteransicht nach dem Drag & Drop löschen
- 4. Wie wird die Geschwindigkeit des Scrollers beibehalten?
- 5. Wie wird RMS nach der Installation einer neuen Version beibehalten?
- 6. Wie wird der Status nach einer Seitenaktualisierung in React.js beibehalten?
- 7. Wird unique() die Reihenfolge beibehalten?
- 8. wie die Zeile der Rasteransicht zu deaktivieren
- 9. Rasteransicht der Bilder wird nicht aktualisiert
- 10. CakePHP - ausgewählten Wert für die Dropdownliste nach dem Senden beibehalten
- 11. Wie wird der Wert des Sitzungsarrays nach dem Senden des Formulars beibehalten?
- 12. HTML - Eingabewert wird nach Aktualisierung beibehalten
- 13. sichererer Weg Fenster Scrollposition
- 14. Wie wird die Eingabe nach dem Aktualisieren der Seite ausgewählt?
- 15. Werte nach dem Senden des Formulars beibehalten
- 16. Wie wird die Hierarchie der Quellordner im Solution Explorer beibehalten?
- 17. Wie wird die Geschwindigkeit des Scrollers beibehalten?
- 18. Wie wird der Imageview-Skalentyp beibehalten?
- 19. Wie wird die Zellenauswahl in NSUserDefaults beibehalten?
- 20. jQuery store Scrollposition
- 21. Wie lade/aktualisiere ich Bilder nach dem Scrollen in der Rasteransicht im Backgroung (asynchrone Task)
- 22. Wie wird die Reihenfolge der Anzeigen in HashMap beibehalten?
- 23. Wie wird die gleiche Farbskala auf der Grundkarte beibehalten?
- 24. Wie wird ein QSqlTableModel aktualisiert, während die Auswahl beibehalten wird?
- 25. Beibehalten der benutzerdefinierten Sortierung in JTabelle nach Tabellenstruktur wird geändert
- 26. Größe der Textfläche wird beibehalten
- 27. Wird Hyperdex noch beibehalten?
- 28. JQUERY DATATABLE Filterparameter nach der Aktualisierung beibehalten
- 29. Ermitteln der Gesamtsumme der Rasteransicht
- 30. Axis-Webdienst wird beibehalten
Rasteransicht-Adapter nicht in onResume() festlegen. –
Ihr Problem hängt eng mit dieser Frage zusammen: http://stackoverflow.com/questions/3014089/maintain-save-restore-scroll-position-with-returning-to-a-listview/3035521#3035521. Hör zu. Es handelt sich um eine ListView, aber es scheint (Nach einer kurzen Inspektion) kommen alle Methoden von AbsListView, von denen GridView auch erbt. – Machinarius
Können Sie Ihren Code teilen, wo Sie Adapter einstellen, kann Ihr Adapter zurückgesetzt werden, wenn das Pop-Menü geschlossen wird. –