如何在 recyclerview 中添加从左向右滑动

New*_*per 4 android swipe android-recyclerview

我正在尝试为我的回收视图添加滑动功能。我正在按照此链接添加滑动操作。https://github.com/nikhilpanju/RecyclerViewEnhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/RecyclerTouchListener.java

在此链接中,我只能从右向左滑动。我想添加从左向右滑动。我尝试在onInterceptTouchEvent. 但我无法从左向右滑动。任何人都可以帮我添加从左向右滑动吗?

小智 5

要在 RecyclerView 中实现此类行为,您需要声明一个ItemTouchHelper,如下所示:

// The class to detect swipes and drags
private lateinit var itemTouchHelper: ItemTouchHelper
Run Code Online (Sandbox Code Playgroud)

该类ItemTouchHelper有一个ItemTouchHelper.SimpleCallback.onChildDraw回调方法,您可以在其中检测用户是否在回收器视图中的项目上向右或向左滑动。接下来,我们将实现这个回调,如下所示:

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)
}
Run Code Online (Sandbox Code Playgroud)

现在,您的回收视图中将监听滑动行为。另外,如果您希望在应用程序用户滑动时显示背景、图标或文本,您可以使用我专门为此用途创建的这个很棒的库。如果您使用 gradle,则可以将其下载到您的项目中。这是其文档的链接: https: //github.com/kevingermainbusiness/ItemDecorator

添加到收藏夹 滑动删除