Mon*_*oya 1 android android-recyclerview
我正在使用RecyclerViewand ItemTouchHelper.SimpleCallback=> onSwiped方法。回收者视图中的某些项目正在进行中,我想在其上禁用滑动。
我该怎么做?
您可以覆盖getSwipeDirs()在你的ItemTouchHelper.SimpleCallback。如果您不希望可滑动项目,则返回0。
此方法的第二个参数是要滑动项目的ViewHolder-您可以在ViewHolder中添加一个简单的标志,以指示该项目是否可滑动。
例如:
static class SwipeViewHolder extends RecyclerView.ViewHolder {
public boolean isSwipeable;
public SwipeViewHolder(View itemView) {
super(itemView);
}
}
Run Code Online (Sandbox Code Playgroud)
和回调:
static class DragAndSwipeCallback extends ItemTouchHelper.SimpleCallback {
public DragAndSwipeCallback(int dragDirs, int swipeDirs) {
super(dragDirs, swipeDirs);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
// Perform drag
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
// Remove item
}
@Override
public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
if (viewHolder instanceof SwipeViewHolder
&& ((SwipeViewHolder) viewHolder).isSwipeable) {
return super.getSwipeDirs(recyclerView, viewHolder);
} else {
return 0;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
942 次 |
| 最近记录: |