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

时间:2018-02-21 13:23:31

标签: android android-recyclerview android-adapter

我的RecyclerView(初始状态)中有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);
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

你想移动"产品4"到列表的顶部。这样做:删除"产品4" (position == 3)使用remove。见remove(int index)。然后使用add在0位置插入项目。请参阅add(int index, E element)

然后,您可以拨打productsAdapter.notifyItemMoved(selectedProductPosition, 0)