如何解决Recycler View 元素的不同滑动方向
是否可以实现回收器视图,根据条件在不同方向上滑动的元素?我做了一些研究,但我没有发现任何关于此事的信息。
我目前正在使用 Recycler View,并且附加了一个 ItemTouchHelper.SimpleCallback。这样我就可以对回收者列表的所有元素执行滑动操作。
我的代码是这样的,我正在使用 getSwipeDirs() 函数来尝试实现我刚刚在问题开头解释的内容,但它并不完全有效。
ItemTouchHelper.SimpleCallback simpleCallback = new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder,int direction) {
int position = viewHolder.getAdapterPosition();
switch (direction) {
case ItemTouchHelper.LEFT:
if(!Boolean.parseBoolean(activitiesList.get(position).get(7))) {
String doneActivityID = activitiesList.get(position).get(0);
DA.markActivityAsDone(doneActivityID,true,seeingDay);
}
break;
case ItemTouchHelper.RIGHT:
if(Boolean.parseBoolean(activitiesList.get(position).get(7))) {
String doneActivityID = activitiesList.get(position).get(0);
DA.markActivityAsDone(doneActivityID,false,seeingDay);
}
break;
}
}
@Override
public int getSwipeDirs(@NonNull RecyclerView recyclerView,@NonNull RecyclerView.ViewHolder viewHolder) {
int position = viewHolder.getAdapterPosition();
Calendar calendar = Calendar.getInstance();
int today = calendar.get(Calendar.DAY_OF_WEEK) - 2;
if (activitiesList.get(position).get(4).equals(getWeekDay(today))) {
if (!Boolean.parseBoolean(activitiesList.get(position).get(7))) {
setDefaultSwipeDirs(ItemTouchHelper.LEFT);
return super.getSwipeDirs(recyclerView,viewHolder);
}
setDefaultSwipeDirs(ItemTouchHelper.RIGHT);
return super.getSwipeDirs(recyclerView,viewHolder);
}
setDefaultSwipeDirs(0);
return super.getSwipeDirs(recyclerView,viewHolder);
}
如果有人能告诉我这是否可行,我将不胜感激,如果可以,请告诉我如何做。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。