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 (将#修改为@)