0

Ich habe einen Adapter für eine RecyclerView. Der Adapter hat eine Eigenschaftsgröße, die entweder klein oder groß sein kann.Android - RecyclerView notifyDatasetChanged nicht aktualisiert Layout-Ansicht

Je nach Eigenschaft unterscheiden sich die für Viewholders geladenen Layouts.

Ich habe eine Schaltfläche, um diese Eigenschaft zu ändern, aber nachdem ich es eingestellt habe, und wenn ich notifyDataSetChanged() aufrufen, werden die Ansichten nicht aktualisiert.

Ich habe auch versucht requestLayout und invalidate ohne Erfolg. Dies ist onCreateViewHolder wird nie wieder aufgerufen.

+0

Bitte geben Sie den Code ein. –

+0

@htafoya Bitte teilen Sie Ihren Code, damit wir Ihnen helfen können. Wenn Sie einen bestimmten Datensatz aktualisieren, verwenden Sie notifyitemchanged() anstelle von notifyDataSetChanged(). –

Antwort

0

notifyDataSetChanged() ruft onBindViewHolder() auf, wenn RecyclerView verwendet wird. Es wird onCreateViewHolder nicht aufgerufen. Sie können SetAdapter() für das obige Problem versuchen.

0

Eine Möglichkeit ist, zu tun, wie

recyclerView.setAdapater(new YourCustomRecylcerViewAdapter(yourProperty, listToUpdate)) 

aufrufen, wenn Sie die Eigenschaft zu ändern. Dies ruft die onCreateViewHolder() des Adapters auf.

0

Nun, ich habe es, es war, weil vor onCreateViewHolder, getItemViewType heißt.

Wenn keine neue Ansicht festgelegt ist, wird sie nicht aufgerufen. Also musste ich einen neuen viewType für jede der kleinen Ansichten erstellen und Problem gelöst :).

Verwandte Themen