如何解决如何在Android RecyclerView中的onChildDraw中监听点击事件?
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,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.right.toFloat(),paint)
val rightButton = RectF(
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)
}
这是我在向左滑动购买选项上看到的代码,与向右滑动购买选项上看到的代码相同。现在,我想对“买卖”点击进行一些操作。如何获得点击事件?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。