Focus lost on refresh in recyclerview
android
Solution
Of course item will lose focus. Because no view to get focus when you refresh RecyclerView by calling method notify*Changed.
There is an imperfect way to keep focus in RecyclerView when you call `notifyDatasetChanged()`.
- Override method getItemId(), give a stable id to each item: `@Override public long getItemId(int position) { return position; }`
- Set has StableId: `adapter.setHasStableIds(true);`
- Now basically you can keep focus in a concrete item when call notifyDatasetChange, if not, disable animator: `mRecyclerView.setItemAnimator(null);`
about stable id:Android: How to make an adapter with stable ids? about disable animator:How to implement ItemAnimator of RecyclerView to disable the animation of notifyItemChanged about the reason of step3 in google code: https://code.google.com/p/android/issues/detail?id=204277
Good luck!
Problem
guys I am developing android TV app so I used recyclerview horizontally and vertically and I used a method to refresh adapter of vertical recyclerview by using adapter.notifyDataSetChanged() but I am getting one problem. 1. It's focus is being gone and on press any D-pad key it is not working only right key is working 2. I used adapter.notifyItemRangeChanged(0, categoryDataList.size()) but I have still one problem that it's focus is going on first element of layout otherwise last of layout. So Please help me as soon as possible. Thanks in advance.