簡體   English   中英

如何在 recyclerview 中添加從左向右滑動

[英]How To add swipe Left to Right in recyclerview

我正在嘗試為我的 recyclerview 添加刷卡功能。 我正在關注此鏈接以添加滑動。 https://github.com/nikhilpanju/RecyclerViewEnhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/RecyclerTouchListener.java

在此鏈接中,我只能從右向左滑動。 我想添加從左到右滑動。 我試圖在onInterceptTouchEvent添加功能。 但我不能從左到右滑動。 有人可以幫我添加從左到右滑動嗎?

要在 RecyclerView 中實現此類行為,您需要聲明一個ItemTouchHelper ,如下所示:

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

ItemTouchHelper類有一個ItemTouchHelper.SimpleCallback.onChildDraw回調方法,您可以在其中檢測用戶是否在您的回收站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)
}

現在,您的回收站視圖中將收聽該滑動行為。 此外,如果您希望將背景、圖標或文本顯示為應用程序的用戶滑動,您可以使用我為該用途創建的這個很棒的庫。 如果您使用的是 gradle,則可以將其下載到您的項目中。 這是它的文檔鏈接: https : //github.com/kevingermainbusiness/ItemDecorator

添加到收藏夾 滑動刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM