复杂的点击处理
Complex click handling
我有一个自定义视图,它将其背景绘制为六边形。
我还制作了一个自定义 RecyclerView 布局管理器,以蜂窝方式处理我的自定义视图:
我不希望在视图范围内但在六边形背景之外的情况下单击该项目(既不显示波纹)。
简单:在视图上覆盖 dispatchTouchEvent()
,如果点击发生在背景之外,则忽略该事件。
问题是,事实上,这个点击可能在视图 B 收到的粉红色区域中,但应该由视图 A 处理
我能做些什么吗?
我不知道你所说的“onDispatchTouchListener”是什么意思,我从未听说过,但我认为解决这个问题的最简单方法是覆盖 onTouchEvent
和 return false当在你的六边形之外时。
override fun onTouchEvent(event: MotionEvent): Boolean = when {
isInHexagon(event.x, event.y) -> super.onTouchEvent(event)
else -> false
}
我有一个自定义视图,它将其背景绘制为六边形。 我还制作了一个自定义 RecyclerView 布局管理器,以蜂窝方式处理我的自定义视图:
我不希望在视图范围内但在六边形背景之外的情况下单击该项目(既不显示波纹)。
简单:在视图上覆盖 dispatchTouchEvent()
,如果点击发生在背景之外,则忽略该事件。
问题是,事实上,这个点击可能在视图 B 收到的粉红色区域中,但应该由视图 A 处理
我能做些什么吗?
我不知道你所说的“onDispatchTouchListener”是什么意思,我从未听说过,但我认为解决这个问题的最简单方法是覆盖 onTouchEvent
和 return false当在你的六边形之外时。
override fun onTouchEvent(event: MotionEvent): Boolean = when {
isInHexagon(event.x, event.y) -> super.onTouchEvent(event)
else -> false
}