2017-05-25 2 views
1

mit einem Rasterlayout in RecyclerView und ich beobachtet, dass, wenn ich 4-5 Elemente auf dem Bildschirm die Positionen ändern Positionen, ich habe einen onclick implementiert, so dass es in eine andere SeiteRecyclerView GridLayoutManager Artikel verschieben Positionen zufällig

gehen würde
public interface ItemClickCallback { 
    void onItemClick(int p, String id); 

} 

public void setItemClickCallback(final ItemClickCallback itemClickCallback) { 
    this.itemClickCallback = itemClickCallback; 

} 

public nAdapter(RealmResults<Nitem> listData, Context c) { 
    inflater = LayoutInflater.from(c); 
    this.listData = listData; 
} 


@Override 
public nHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View view = inflater.inflate(R.layout.n_item, parent, false); 
    return new nHolder(view); 
} 

@Override 
public void onBindViewHolder(nAdapter.nHolder holder, final int position) { 
    final Nitem item = (Nitem) listData.get(position); 
    holder.title.setPadding(7,7,7,7); 
    if(holder.title.toString().isEmpty()) { 
     holder.title.setText(item.getNotes()); 
    } 
     holder.container.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      itemClickCallback.onItemClick(position,item.getId()); 
     } 
    }); 

} 

Antwort

0

Ansichten in RecyclerView werden wiederverwendet.

Dies bedeutet, dass beim Erstellen eines Bildlaufs in der Liste nach oben oder nach unten die zuvor erstellten Ansichten wiederverwendet werden, anstatt eine vollständig neue Ansicht zu erstellen.

Implizit erzwingt es Sie, den Inhalt der Ansicht immer wieder zu aktualisieren (nicht nur, wenn Sie erwarten, dass es leer ist).

Wahrscheinlich haben Sie ein Problem mit falsch platzierten Titeln? Es tritt auf, weil Sie nur Titel festlegen, wenn dieser leer ist (was nur für wenige noch nicht gecachte Sichten gilt).

Entfernen Sie einfach if Zustand und Sie sollten in Ordnung sein.

+0

entfernt die if-Anweisung und nichts geändert, hilft es mir, Realm als seine Datenbank zu verwenden –

Verwandte Themen