gpt4 book ai didi

android - ItemTouchHelper 获取滑动方向

转载 作者:搜寻专家 更新时间:2023-11-01 09:33:18 27 4
gpt4 key购买 nike

我需要根据滑动方向更改行项目的背景颜色,如果向右滑动则将颜色更改为绿色,如果向左滑动则将颜色更改为红色。

但我发现很难获得滑动的方向。

这是我的代码。

public class SimpleItemTouchHelperCallback extends ItemTouchHelper.Callback 
{

private final ItemTouchHelperAdapter mAdapter;
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter mAdapter) {
this.mAdapter = mAdapter;
}

@Override
public boolean isItemViewSwipeEnabled() {
return true;
}

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

@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}

@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
final int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
final int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
return makeMovementFlags(dragFlags,swipeFlags);
}

@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
if(direction == ItemTouchHelper.LEFT){
Log.i("Swipe direction : ","Left");
}
else if (direction == ItemTouchHelper.RIGHT){
Log.i("Swipe direction : ","Right");
}
mAdapter.onItemDismiss(viewHolder.getAdapterPosition());
}
}

我在日志中没有得到任何值。

请提出建议。

最佳答案

Ramees 所示,您可以使用 ItemTouchHelper.SimpleCallbackonChildDraw 回调来检测滑动的方向 当滑动完成时,您可以使用此回调根据滑动方向显示不同的项目背景。 onSwiped 回调将检测滑动完成后的方向,您可以在此处决定采取什么操作。

new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

@Override
public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView,
@NonNull RecyclerView.ViewHolder viewHolder, float dX, float dY,
int actionState, boolean isCurrentlyActive) {

// dX (float) is the amount of horizontal displacement caused by user's action.
// If the horizontal displacement is positive the item is being
// swiped to the RIGHT, if it is negative the item is being
// swiped to the LEFT.

if(dX >0) {
// RIGHT swipe
} else {
// LEFT swipe
}
}

}).attachToRecyclerView(mRecyclerView);

关于android - ItemTouchHelper 获取滑动方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45430223/

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