【问题标题】:How to do swipe gesture on RecyclerView item without 3rd party lib如何在没有 3rd 方库的情况下对 RecyclerView 项目进行滑动手势
【发布时间】:2015-03-20 17:15:40
【问题描述】:

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

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

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

【问题讨论】:

  • 我做了一个小库,它使用 ItemTouchHelper 来简化手势创建,你可以在这里找到它 github.com/olmur/rvtools

标签: android animation slide android-recyclerview


【解决方案1】:

是的,您可以使用支持库提供的ItemTouchHelper 类。

附: 前几天我不得不这样做,并且还想尽可能避免使用 3rd 方库。该库可能做的比您需要的要多得多,因此在您的情况下它可能比必要的复杂。它也可能不必要地增加您的方法数量。这只是您应该避免添加 lib 来快速解决问题的原因示例。

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

【讨论】:

  • 很棒的博文,但是您是否设法使用这种方法实现了滑动操作列表?
  • 不确定我是否理解您的意思?滑动查看操作列表?
  • 是的,滑动以显示行视图后面的操作。只是出于好奇。
  • 我做了一个小库,它使用 ItemTouchHelper 来简化手势创建,你可以在这里找到它 github.com/olmur/rvtools
【解决方案2】:

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

【讨论】:

  • 不是人们懒得点击链接,今天你提供的所有链接都失效了,这就是为什么答案中应该始终包含相关代码而不仅仅是链接的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2012-05-28
  • 2011-12-12
  • 2017-12-26
  • 2012-08-11
相关资源
最近更新 更多