如何在没有第三方库的RecyclerView项目上轻扫手势

时间:2015-01-22 01:22:57

标签: android animation slide android-recyclerview

他们是否直接支持在RecyclerView项目上删除/存档幻灯片(从右到左或从左到右)。

而不是删除/存档我想要列表项下的四个按钮。

像这样https://github.com/47deg/android-swipelistview但是对于recyclerview和官方支持而不是任何第三方lib

2 个答案:

答案 0 :(得分:8)

是的,你可以使用支持库提供的ItemTouchHelper类来完成它。

P.S。 前几天我不得不这样做,并且如果可能的话也想避免使用第三方库。该库可能比您需要的更多,因此可能比您的情况更复杂。它也可以不必增加您的方法计数。这只是为什么你应该避免添加lib作为你的问题的快速修复的原因的一个例子。

编辑:我对此有所了解,请参阅此blog post和此github repo

答案 1 :(得分:4)

是的。使用ItemTouchHelper。尝试克隆this project并查看其使用方式。

具体file,见第87行

对于不想点击链接的懒人,这就是你设置的方式:

    ItemTouchHelper.SimpleCallback simpleCallback =
            new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
                @Override
                public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
                                      RecyclerView.ViewHolder target) {
                    return false;
                }

                @Override
                public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                    //do things
                }
            };

    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
    itemTouchHelper.attachToRecyclerView(recyclerView);

recyclerView是保存回收者视图的变量。

除了ItemTouchHelper.RIGHT之外还有其他方向,尝试进行实验。