问题描述
是否可以实现回收器视图,根据条件在不同方向上滑动的元素?我做了一些研究,但我没有发现任何关于此事的信息。
我目前正在使用 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 (将#修改为@)