猿问

recyclerview中item滑动

ItemTouchHelper.Callback mCallback = new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP|ItemTouchHelper.DOWN,ItemTouchHelper.RIGHT) {
 
  @Override
  public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
    int fromPosition = viewHolder.getAdapterPosition();//得到拖动ViewHolder的position
    int toPosition = target.getAdapterPosition();//得到目标ViewHolder的position
    if (fromPosition < toPosition) {
      //分别把中间所有的item的位置重新交换
      for (int i = fromPosition; i < toPosition; i++) {
        Collections.swap(datas, i, i + 1);
      }
    } else {
      for (int i = fromPosition; i > toPosition; i--) {
        Collections.swap(datas, i, i - 1);
      }
    }
    mAdapter.notifyItemMoved(fromPosition, toPosition);
    //返回true表示执行拖动
    return true;
  }
  @Override
  public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
    int position = viewHolder.getAdapterPosition();
    datas.remove(position);
    mAdapter.notifyItemRemoved(position);
  }
};
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(mCallback);
itemTouchHelper.attachToRecyclerView(mRecyclerView);

拖拽上下滑动不了是怎么会事啊

慕粉4089507
浏览 1643回答 1
1回答

为梦想努力_冬

你只是改变了数据,没有重绘UI啊
随时随地看视频慕课网APP

相关分类

Android
我要回答