ho estesoRecyclerView adattatore non notifyDataSetChanged lavoro
RecyclerView.Adapter<RecyclerView.ViewHolder>
e quando ho chiamato:
mRecyclerView.getAdapter().notifyDataSetChanged();
Non è successo niente.
L'unico modo per aggiornare la vista è quello di impostare di nuovo l'adattatore (see this answer):
mRecyclerView.setAdapter(new MyAdapter(...));
ho due problemi con questa soluzione:
- posso vedere un lampeggio sullo schermo quando ho impostato di nuovo l'adattatore
- Il listview ritorna alla prima posizione.
Qualche idea?
Hai provato a incapsulare metodo notifyDataSetChanged in MyAdapter? Es: Crea "myNotifyDataSetChanged" in MyAdapter e da questo metodo chiama this.notifyDataSetChanged() ". Salva riferimento MyAdapter e chiama myAdapterRef.myNotifyDataSetChanged() invece di myRecyiclerView.getAdapter(). NotifyDataSetChanged().Non so perché ha funzionato per me (ho avuto quel problema con ListView) – bajicdusko
@helionprime Non ha aiutato :( – David
ok, il mio male. Ho dimenticato di ottenere/utilizzare i dati aggiornati all'interno del metodo 'onBindViewHolder'. Ma per quanto riguarda il effetto lampeggio, come posso liberarmene? – David