androidandroid-recyclerviewredraw

Force RecyclerView to redraw its items


Is there any way to redraw all items of RecyclerView?

I have some Themes (in style.xml) and after changing the theme, I need the RecyclerView to be redrawn.

So I want a method that will force to re-call onCreateViewHolder for each items of the adapter.

I tried to:

I mention that the RecyclerView is attached to an Activity, not to a Fragment.


Solution

  • I found the answer! The correct way to do this is:

    recyclerView.setAdapter(null);
    recyclerView.setLayoutManager(null);
    recyclerView.setAdapter(myAdapter);
    recyclerView.setLayoutManager(myLayoutManager);
    myAdapter.notifyDataSetChanged();
    

    After that, all the items are getting the new style!