2011-01-10 22 views
5

Arkadaşlar,android liste görünümünde kaydırma çubuğu konumunu korumak nasıl?

ListView'de bir dizi görüntülüyorum.

Ben Bu listenin kaydırma çubuğu konumunu korumak değil dinamik düğmesi tıklandığında dizinin verileri değiştirmek ve

adapter.notifyDataSetInvalidated(); 

diyoruz. (Listeye veri kaynağının uzunluğu her zaman aynıdır). ListView'in son durumunu nasıl tutacağımı bana yönlendirebilir misiniz?

Herhangi bir yardım için teşekkür ederiz. Yalnızca verilerde bazı değişiklikler yenilemek istiyorsanız,

//Get the top position from the first visible element 
int idx = list.getFirstVisiblePosition(); 
View vfirst = list.getChildAt(0); 
int pos = 0; 
if (vfirst != null) pos = vfirst.getTop(); 

//Restore the position 
list.setSelectionFromTop(idx, pos); 

cevap

10

bu deneyin. Ve kaydırma aynı konumda olacaktır.

+0

Lütfen kodu düzeltin ya da burada ne var? (vfirst! = null) – UMAR

+0

kodunun düzeltilmesi gibi bir şeydir. Kodda –

+2

küçük hata olduğunu bildirin: 'v.getTop()' vfirst.getTop() olmalıdır – BenjaminButton

3

yerine

notifyDataSetChanged(); 

kullanın:

İlgili konular