Android Liste Görünümü Tek Satır Yenileme
Aldık sonra ListView
, bir ben tek bir satır için veri tek satır güncellemek istiyorum.
Şu anda notifyDataSetChanged();
kullanıyorum ama o View
çok yavaş tepki yapar. Başka çözümler var mı?
CEVAP
Romain gibi Adam explained a while back sırasında Google I/O session, en verimli bir biçimde tek bir güncelleme görünümünde bir liste görünümü gibi bir şey (bu bir güncelleme bütün verileri görüntüle):
ListView list = getListView();
int start = list.getFirstVisiblePosition();
for(int i=start, j=list.getLastVisiblePosition();i<=j;i )
if(target==list.getItemAtPosition(i)){
View view = list.getChildAt(i-start);
list.getAdapter().getView(i, view, list);
break;
}
target
varsayarsak adaptörün bir öğedir.
Bu kodu almak ListView
, sonra da Gözat şu anda gösterilen manzarası, karşılaştırma target
madde aradığını her görüntülenen öğeleri görüntüleme, ve eğer hedef arasında olanlar, kapsayan görüntülemek ve yürütmek adaptörü getView
üzerinde görüntülemek için yenile ekran.
Bir yan not invalidate
çalışmıyor gibi bazı insanların beklediği ve yenileme view getView gibi yapar, notifyDataSetChanged
yeniden bütün liste ve arama getview
her görüntülenen öğeleri ve invalidateViews
de etkileyen bir grup.
Son bir şey, bir de eğer sadece bir satır, bir bakış, bir çocuk ve getView
gibi tüm satırı değiştirmek gerekiyorsa ekstra performans elde edebilirsiniz. Bu durumda, aşağıdaki kodu list.getAdapter().getView(i, view, list);
(TextView
bir metin değiştirme gibi) değiştirebilirsiniz:
((TextView)view.findViewById(R.id.myid)).setText("some new text");
Kod güveniyoruz.
Farklı bir düzen ile Android liste Gör...
Nasıl Yanı ya da Android Liste Görünüm...
Yenileme Android Liste Görünümü sonra ...
Nasıl Android Liste Görünümü ayırıcı ç...
Nasıl Android liste görünümü yenilemek...