我有一个RecyclerView
,我想在选择RecyclerView
项目后动态地将项目位置改变到顶部。
请建议实现上述问题的最佳方法?
我有一个RecyclerView
,我想在选择RecyclerView
项目后动态地将项目位置改变到顶部。
请建议实现上述问题的最佳方法?
您需要将所选项目与列表中的顶部项目交换,然后通知适配器关于位置更改的情况。一个示例代码如下:
Collections.swap(orderItems.getItems(), position, 0);
notifyItemMoved(position, 0);
希望这有所帮助!
试试这个
String Item = List.get(position);
List.remove(position); // remove item from the list
List.add(0,removedItem); // add at 0 index of your list
notifyDataSetChanged();
linearLayoutManager.scrollToPositionWithOffset(0, 20); // scroll recyclerview to top
或者
recyclerview.getLayoutManager().scrollToPosition(0) // scroll recyclerview to top
或者
recyclerview.smoothScrollToPosition(0); // scroll recyclerview to top
在项目的onclick中添加以下代码:
String removedItem = actualList.remove(position);
//actualList is list used to populate recylerview and position is selected
//item position
actualList.add(0,removedItem);
notifyDataSetChanged();
如果您有不同的这样的情况, 我们可以从@manohar-reddy这里实现这种方法,并调用notifyItemChanged(position)
,它也会调用onBindViewHolder
,然后相应地更新您的布局。
*在这种情况下,如果第0项与其他项的布局不同
您可能需要阅读此参考资料以正确获取项目位置
感谢@amit-srivastava答案和@manohar-reddy