[英]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.