2011-12-23 13 views
12

Come posso mantenere la posizione di scorrimento di un GridView (è pieno di risultati di ricerca) durante un riorientamento dello schermo?Mantieni la posizione di scorrimento di GridView attraverso la rotazione dello schermo

Ho il GridView all'interno di un frammento e quando ruoto lo schermo salta in cima all'elenco.

Per rendere ancora più complicato, in modalità orizzontale il mio GridView ha 3 colonne .. in modalità verticale ha 2 colonne.

Non riesco a capire come mantenere il GridView del frammento per scorrere ovunque vicino a dove dovrebbe essere quando l'orientamento dello schermo cambia.

risposta

18

Si può provare questo:

Inizialmente si deve ottenere la posizione di scorrimento corrente del GridView chiamando:

int index = gridview.getFirstVisiblePosition(); 

allora dovete salvare questo valore, mentre i cambiamenti di orientamento e quando il GridView è creato di nuovo devi spostare il tuo gridview in questo indice.

Suppongo che questo potrebbe funzionare:

gridview.smoothScrollToPosition(int index) 

Spero che questo aiuti!

+6

ho visto che, ma ho bisogno per supportare nuovamente a 2.1 e quindi non ho accesso a smoothScrollToPosition(). Sto usando setSelection (int position) invece. getFirstVisiblePosition() è esattamente ciò di cui avevo bisogno. Ora mi sento sciocco! Grazie! –

+0

Nessun problema amico! Sono contento che ti abbia aiutato! :) –

+4

Nella mia app, smoothScrollToPosition non funziona. Ma setSelection funziona bene. – ChangUZ

24

È possibile utilizzare il seguente metodo, funzionerà per tutte le versioni di Android.

Per salvare la posizione di scorrimento corrente:

int index = gridView.getFirstVisiblePosition(); 

Poi, dopo il cambiamento di orientamento, utilizzare il seguente codice per impostare la posizione GridView per l'indice salvato:

gridView.setSelection(index); 
+4

ha funzionato !!!! gridview.smoothScrollToPosition (int index) ---> non funziona quando c'è un caricamento lazy. – krisDrOid

+0

Same @krisDrOid – ChangUZ

+0

Questo funziona - grazie amico! –

Problemi correlati