当前位置:  开发笔记 > 编程语言 > 正文

Android-Recycler视图设置项无法滑动

如何解决《Android-Recycler视图设置项无法滑动》经验,为你挑选了1个好方法。

我正在使用RecyclerViewand ItemTouchHelper.SimpleCallback=> onSwiped方法。回收者视图中的某些项目正在进行中,我想在其上禁用滑动。

我该怎么做?



1> Tanis.7x..:

您可以覆盖getSwipeDirs()在你的ItemTouchHelper.SimpleCallback。如果您不希望可滑动项目,则返回0。

此方法的第二个参数是要滑动项目的ViewHolder-您可以在ViewHolder中添加一个简单的标志,以指示该项目是否可滑动。

例如:

static class SwipeViewHolder extends RecyclerView.ViewHolder {
    public boolean isSwipeable;

    public SwipeViewHolder(View itemView) {
        super(itemView);
    }
}

和回调:

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;
        }
    }
}

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有