问题描述
我有一个viewpager,在viewpager的顶部有3个视图(2x红色和绿色)。我想检测到视图上的单击,但如果不是单击事件,也要将touch事件传递给基础viewpager。
3个视图扩展了InterceptClickView
class InterceptClickView(
context: Context,attrs: AttributeSet?
) : FrameLayout(context,attrs) {
private var gestureDetector: GestureDetector = GestureDetector(context,object : SimpleOnGestureListener() {
override fun onSingleTapConfirmed(e: MotionEvent?): Boolean {
performClick()
return true
}
override fun onDown(e: MotionEvent?): Boolean {
return false
}
})
override fun onInterceptTouchEvent(event: MotionEvent?): Boolean {
return if (gestureDetector.onTouchEvent(event)) {
true
} else {
super.onTouchEvent(event)
}
}
override fun onTouchEvent(event: MotionEvent?): Boolean {
return gestureDetector.onTouchEvent(event)
}
}
如果我在onDown
中返回 false ,则永远不会调用onSingleTapConfirmed,并且所有触摸事件都将移至viewpager。
但是,如果我返回 true ,则会调用onSingleTapConfirmed,但viewpager不会收到任何触摸事件。
如何实现我的视图接收到clickevent但仍然能够在viewpager中滚动?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)