2016-04-05 27 views
2

Ben bir RecyclerView olan bir parçası ile Activity1 var. Listede bir öğe seçmek, öğeyi değiştiren Activity2'yi başlatır. Activity2 işlemi bittikten sonra Activity1 uygulamasına dönersek, RecyclerView öğesinin önce Activity2 durumunu (eski öğe durumu kaydedildi), sonra onActivityResult öğesinde güncelleştirilmiş veri kümesi sağlayan restartLoader() işlevini başlattığımı gözlemlerim ve sonra RecyclerView kendini yeniden yeni veri.Android RecyclerView çizim sorunları (titreme)

bu davranışı ile sorun başlangıçta daha sonra eski verileri çizer yeni verilerle kendisini yeniden çizer çünkü RecyclerView titrer olmasıdır. Her zaman Activity1.onActivityResult() içindeki refreshLoader() işlevini kullanmak istediğimi varsayarsak, bu titremeyi önlemek için iyi bir yol var mı?


ek komplikasyon ben recycleview boş olduğunda göstermek için boş görünümü kullanın ki ... Bu

+0

ait

herhangi sadece singleitem verilerini güncelleyebilirsiniz yolları ziyade bütün olmaktan notifyItemchanged (getAdapterPosition()) kullanarak yoktur ;? – erluxman

+0

Ayrıca öğelerin diğer etkinliklere göre silinmesi veya listeye eklenmesi de mümkündür. Teknik olarak, DB'den herkesi yeniden yüklemek, tek bir öğeyi izlemekten daha evrensel bir yaklaşım gibi görünüyor. – Califf

+0

Üzgünüz, ne demek istediğini anlayamadın mı? – erluxman

cevap

4

kullanabilirsiniz rehabilitasyon makinesi görünümünde titreyen güncelleştirmeyi kaldırmak için ... daha titreyen ekler:

N - Eğer

notifyItemChanged(int position) 

kullanmalıdır

RecyclerView.ItemAnimator animator = mRecyclerView.getItemAnimator(); 
    if (animator instanceof SimpleItemAnimator) { 
     ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); 
    } 
RecyclerView bir ürün güncellemek için Kayıtlı herhangi bir gözlemciyi, pozisyondaki öğenin değiştiğini belirtin. yerine notifyDataSetChanged()

+0

yardımcı oluyor, teşekkürler! – Califf

+0

@Califf ama bu öğe eklemek ile işe yaramaz gibi görünüyor, ben daha fazla ürün itmek için daha fazla öğeyi itme ama hangi onlar titrek bir sorun siliniyor ... –