我有recyclerview
,因为我想在选择recyclerview
的项目后动态更改项目的位置。
请提出解决上述问题的最佳方法?
答案 0 :(得分:7)
您需要将所选项目与列表中的顶部项目交换,然后通知适配器有关位置更改的信息。 示例代码如下所示:
Collections.swap(orderItems.getItems(), position, 0);
notifyItemMoved(position, 0);
希望它有所帮助!
答案 1 :(得分:5)
试试这个
jsonPath
或强>
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
答案 2 :(得分:2)
在项目的onclick中添加以下代码,
String removedItem = actualList.remove(position);
//actualList is list used to populate recylerview and position is selected
//item position
actualList.add(0,removedItem);
notifyDataSetChanged();
答案 3 :(得分:0)
如果您有不同的cases like this,我们可以从@manohar-reddy实现此方法并调用notifyItemChanged(position)
,它也会调用onBindViewHolder
,然后相应地更新您的布局。
*在这种情况下,如果0项目与其他项目的布局不同
您可能想阅读this reference,以正确获取商品位置
感谢@ amit-srivastava的回答和@ manohar-reddy