2011-12-23 11 views
12

Bir ekran yeniden yönlendirmesi boyunca GridView'ın (arama sonuçlarıyla dolu) kaydırma konumunu nasıl koruyabilirim?GridView öğesinin Perde Kaydırma Konumunu Ekran Döndürme İle Koruun

GridView'ın bir Parçanın içinde var ve ekranı döndürdüğüm zaman listenin en üstüne geri atlar.

Manzara modunu daha da zorlaştırmak için GridView cihazımın 3 sütunu var .. portre modunda 2 sütun var.

Parçanın GridView öğesinin, ekran yönünün değiştiği yerde olması gereken yere yakın bir yere kaydırılmasının nasıl saklanacağını anlayamıyorum. GridView olduğunda

int index = gridview.getFirstVisiblePosition(); 

Sonra yön değişiklikleri yaparken bu değeri kaydetmek zorunda ve: arayarak GridView geçerli kaydırma konumunu almak için

Başlangıçta var:

cevap

18

Bu deneyebilirsiniz tekrar oluşturulduysanız, gridview'inizi bu dizine taşımalısınız.

Ben bu işe yarayabilir varsayalım: Bu yardımcı olur

gridview.smoothScrollToPosition(int index) 

Umut!

+6

Bunu gördüm, ama gerek 2.1'e geri dönmek ve böylece smoothScrollToPosition() öğesine erişimim yok. Bunun yerine setSelection (int position) kullanıyorum. getFirstVisiblePosition() tam olarak ihtiyacım olan şey. Şimdi aptal hissediyorum! Teşekkür ederim! –

+0

Sorun değil dostum! Bu sana yardım etmekten memnun! :) –

+4

Uygulamamda, smoothScrollToPosition çalışmıyor. Ancak setSelection iyi çalışıyor. – ChangUZ

24

Aşağıdaki yöntemi kullanabilirsiniz, tüm Android sürümleri için çalışır.

int index = gridView.getFirstVisiblePosition(); 

Sonra yönü değiştirildikten sonra, kaydedilen endekse GridView pozisyonunu ayarlamak için aşağıdaki kodu kullanabilirsiniz:

akım kaydırma konumunu kaydetmek için

gridView.setSelection(index); 
+4

bu işe yaradı !!!! tembel yükleme olduğunda gridview.smoothScrollToPosition (int index) ---> çalışmayacaktır. – krisDrOid

+0

Aynı KrizDrOid – ChangUZ

+0

Bu işe yarıyor - teşekkürler dostum! –