gpt4 book ai didi

android - ItemTouchHelper - 在第一条跳线后强制放下

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:48 33 4
gpt4 key购买 nike

我正在使用 ItemTouchHelper 和 ItemTouchHelper.SimpleCallback 来允许用户重新排序垂直列表 Recycler View。

拖放有效,但在第一条跳线之后强制拖放,即使我没有将手指从拖动的单元格上移开。

请在下面找到 SimpleCallback :

private void initSwipeAndDrap() {

ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(
ItemTouchHelper.UP | ItemTouchHelper.DOWN,
0) {

//========== Swipe (Not used) ==============

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
}


//========== Drag ==============

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {

int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();

Podcast podcast = rva.podcasts.remove(fromPosition);
rva.podcasts.add(toPosition, podcast);
act.dmo.updatePodcastsListPosition();
act.dmo.notifyDataSetChangedPodcast();

return true;
}

@Override
public boolean isLongPressDragEnabled() {
return false;
}


};

itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(rv);
}

最佳答案

在 onMove() 方法中用 notifyItemMoved() 替换 notifyDataSetChanged() 解决了我的问题。

这让我感到惊讶,因为我认为 onMove() 在下降后被调用。事实上,它对水滴本身有影响。

关于android - ItemTouchHelper - 在第一条跳线后强制放下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38666255/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com