Android 将RecyclerView项目推到顶部,而不修改其他项目订单

Android 将RecyclerView项目推到顶部,而不修改其他项目订单,android,android-recyclerview,android-adapter,Android,Android Recyclerview,Android Adapter,我的回收视图中有5项(初始状态): 产品1 产品2 产品3 产品4 产品5 如果有一个产品是特色产品,我会显示一个简单的动画,并将该产品推到RecyclerView的顶部。例如,如果产品4具有特色,则订单将变为: 产品4 产品2 产品3 产品1 产品5 我想将项目推到RecyclerView的顶部,而不修改其他项目的顺序,如下所示 产品4 产品1 产品2 产品3 产品5 这是我的函数 private void pushSelectedProductToTop(final int se

我的
回收视图中有5项(初始状态):

  • 产品1
  • 产品2
  • 产品3
  • 产品4
  • 产品5
如果有一个产品是特色产品,我会显示一个简单的动画,并将该产品推到
RecyclerView
的顶部。例如,如果产品4具有特色,则订单将变为:

  • 产品4
  • 产品2
  • 产品3
  • 产品1
  • 产品5
我想将项目推到
RecyclerView
的顶部,而不修改其他项目的顺序,如下所示

  • 产品4
  • 产品1
  • 产品2
  • 产品3
  • 产品5
这是我的函数

private void pushSelectedProductToTop(final int selectedProductPosition) {
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        Collections.swap(currentProductListResponseRecyclerView.getProducts(), selectedProductPosition, 0);
        productsAdapter.notifyItemMoved(selectedProductPosition, 0);
      }
    }, 1000);
}
提前感谢。

您想将“产品4”移到列表的顶部。执行此操作:使用
Remove
删除“产品4”(位置==3)。看见然后使用
add
将项目插入位置0。看


然后,您可以调用
productsAdapter.notifyItemMoved(selectedProductPosition,0)

看到这一点,您可以只调用
productsAdapter.notifyDataSetChanged()
@ALTegani:正是我要找的
mpProductItems.remove(indexofcorrecitem);MPProductItems。添加(i,更正项);notifyItemMoved(IndexOfCorrecItem,i)好消息…为你高兴@MohamedElloumi