当前位置: 首页 > 知识库问答 >
问题:

如何在recyclerview中增加向左向右滑动

慕金林
2023-03-14

我正在尝试为我的RecolyerView添加滑动功能。我正在跟随这个链接添加刷卡。https://github.com/nikhilpanju/recyclerviewenhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/recyclertouchlistener.java

在这个链接中,我只能做从右到左的滑动。我要添加左到右滑动。我尝试在OnInterceptTouchEvent中添加功能。但我不能做从左到右的滑动。有没有人可以帮我添加左右滑动?

共有1个答案

朱炳
2023-03-14

要在RecolyerView中实现此类行为,需要声明ItemTouchHelper,如下所示:

// The class to detect swipes and drags
private lateinit var itemTouchHelper: ItemTouchHelper

ItemTouchHelper类有一个ItemTouchHelper.SimpleCallback.OnChildDraw回调方法,您可以在该方法中检测用户是向右还是向左扫描了RecyclerView中的项。接下来,我们将实现这个回调,如下所示:

private fun setupRecyclerView() {
    val myRecyclerView = findViewById<RecyclerView>(R.id.myRecyclerView)
    val customAdapter = CustomAdapter()
    myRecyclerView.adapter = customAdapter

    val simpleCallback = object :
        ItemTouchHelper.SimpleCallback(
            0,
            ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT
        ) {
        override fun onMove(
            recyclerView: RecyclerView,
            viewHolder: RecyclerView.ViewHolder,
            target: RecyclerView.ViewHolder
        ): Boolean = false

        override fun onChildDraw(
            c: Canvas,
            recyclerView: RecyclerView,
            viewHolder: RecyclerView.ViewHolder,
            dX: Float,
            dY: Float,
            actionState: Int,
            isCurrentlyActive: Boolean
        ) {

           // If you want to add a background, a text, an icon
          //  as the user swipes, this is where to start decorating
          //  I will link you to a library I created for that below

            super.onChildDraw(
                c,
                recyclerView,
                viewHolder,
                dX,
                dY,
                actionState,
                isCurrentlyActive
            )
        }

        override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
            val position = viewHolder.adapterPosition
            when (direction) {
                ItemTouchHelper.LEFT -> {
                   // Do something when a user swept left
                }
                ItemTouchHelper.RIGHT -> {
                  // Do something when a user swept right
                }
            }
        }
    }
    itemTouchHelper = ItemTouchHelper(simpleCallback)
    itemTouchHelper.attachToRecyclerView(myRecyclerView)
}

现在将在您的RecolyerView中监听刷取行为。此外,如果你想要一个背景,图标或文本显示为你的应用程序的用户滑动,你可以使用这个很棒的库我创建的只是为了这个用途。如果您正在使用Gradle,您可以将其下载到您的项目中。下面是它的文档链接:https://github.com/kevingermainbusiness/itemdecorator

 类似资料:
  • 我有viewpager和tablayout,内部viewpager有一个创建RecolyerView片段, 在RecyclerVIew roe项目中,我创建了一个水平滚动视图,用于向左/向右移动, 基本上,我只想滑动屏幕的75%左右,然后显示可滑动视图, 我还使用了的,但它会刷行(100%刷行), 但所有这些都不能正常工作,因为当我们在recyclerview项上滑动时,有时触摸到ViewPage

  • 问题内容: 我所看到的和jQuery的。左右滑动的功能/方式如何? 问题答案: 您可以使用jQueryUI中的其他效果来执行此操作: 快速示例:

  • 我搜索了一些滑动示例, 但我仍然找不到从右向左滑动的例子。 请任何一个给样品项目滑动菜单从右到左

  • 我试图将一个视图从右向左滑动,点击一个按钮,它的可见性就消失了,点击另一个按钮,它的可见性就消失了。我尝试了以下解决方案。但是它要求视图是可见的,并且它会将视图从一个位置滑动到另一个位置。我想要一个滑动效果,就像那样,但是要有。我怎样才能做到这一点?

  • 我在水平方向上使用RecyclerView,New element从左到右。和滚动是 ltr。如何改变这个方向? XML 代码: 和Java: 适配器: public class AdapterMainPrice extender RecyclerView.Adapter {

  • 本文向大家介绍jQuery控制的不同方向的滑动(向左、向右滑动等),包括了jQuery控制的不同方向的滑动(向左、向右滑动等)的使用技巧和注意事项,需要的朋友参考一下 引入jquery.js,复制以下代码,即可运行。 1、slidetoggle() 交替slidedown(),slideup() Html代码 Js代码 2、左侧横向交替滑动 Animate Left Html代码 Js代码 3、左