如何在没有第 3 方库的情况下对 RecyclerView 项目执行滑动手势

How to do swipe gesture on RecyclerView item without 3rd party lib

他们是否直接支持在 RecyclerView 项目上滑动 delete/archive(从右到左或从左到右)。

而不是 delete/archive 我想要列表项下的四个按钮。

类似这样的东西 https://github.com/47deg/android-swipelistview 但对于 recyclerview 和官方支持不是任何第 3 方库

是的,您可以使用支持库提供的 ItemTouchHelper class 来完成。

P.S。 前几天我不得不这样做,并且还想尽可能避免使用第 3 方库。该库可能做的比您需要的要多得多,因此在您的情况下它可能比必要的更复杂。它也可以不必要地增加你的方法数量。这只是您应避免添加 lib 作为问题快速修复的原因的示例。

编辑:我试了一下,看这个blog post and this github repo

是的,有。使用 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还有其他的方向,试试看吧