private fun initSwipe() {
val simpleItemTouchCallback: ItemTouchHelper.SimpleCallback = object :
ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean {
return false
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val position = viewHolder.adapterPosition
if (direction == ItemTouchHelper.RIGHT) {
//sell
// onClickSell(iPresenter?.data?.get(position))
}
if (direction == ItemTouchHelper.LEFT) {
//buy
// onClickBuy(iPresenter?.data?.get(position))
}
}
override fun onChildDraw(
c: Canvas,
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
dX: Float,
dY: Float,
actionState: Int,
isCurrentlyActive: Boolean
) {
val paint = Paint()
val textPaint = Paint()
textPaint.color = Color.WHITE
textPaint.textSize = 40f
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
val itemView = viewHolder.itemView
val height =
itemView.bottom.toFloat() - itemView.top.toFloat()
val width = height / 3
if (dX > 0) {
recyclerView.setOnClickListener(sellListener)
paint.color = Color.parseColor("#288fc9")
val background = RectF(
itemView.left.toFloat(),
itemView.top.toFloat(),
dX,
itemView.bottom.toFloat()
)
c.drawRect(background, paint)
val leftButton = RectF(
itemView.left.toFloat() + width,
itemView.top.toFloat() + width,
itemView.left.toFloat() + 2 * width,
itemView.bottom.toFloat() - width
)
c.drawText(
getString(R.string.sell),
leftButton.centerX() - (20),
leftButton.centerY() + (30 / 2),
textPaint
)
} else {
recyclerView.setOnClickListener(buyListener)
paint.color = Color.parseColor("#5ADD69")
val background = RectF(
itemView.right.toFloat() + dX,
itemView.top.toFloat(),
itemView.right.toFloat(),
itemView.bottom.toFloat()
)
c.drawRect(background, paint)
val rightButton = RectF(
itemView.right.toFloat(),
itemView.top.toFloat(),
itemView.right.toFloat(),
itemView.bottom.toFloat()
)
c.drawText(
getString(R.string.buy),
rightButton.centerX() - (170),
rightButton.centerY() + (30 / 2),
textPaint
)
}
}
super.onChildDraw(
c,
recyclerView,
viewHolder,
dX / 4,
dY,
actionState,
isCurrentlyActive
)
}
}
val itemTouchHelper = ItemTouchHelper(simpleItemTouchCallback)
itemTouchHelper.attachToRecyclerView(viewDataBinding?.recyclerViewHolding)
}
这是我在向左滑动购买选项上看到的代码,与向右滑动购买选项上看到的代码相同。现在,我想对“买卖”点击进行一些操作。如何获得点击事件?