我创建了一个自定义视图,您可以在其中使用手指绘制路径。它扩展了View类。
当我将其用作ListView的一个项目时,如果用户触摸自定义视图,则ListView会滚动。我该如何防止发生这种情况?
我想我需要以某种方式聚焦于我的自定义视图。但是我不知道如何做到这一点。
更新:
我找到了可能的解决方案。在我的自定义视图的onTouchEvent(Motion event)方法中,我放置了getParent()。requestDisallowInterceptTouchEvent(true)。
没有这个选项时,当用户触摸自定义视图时,事件队列看起来像这样:
MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE MotionEvent.ACTION_MOVE MotionEvent.ACTION_CANCEL
当我收到具有代码MotionEvent.ACTION_CANCEL的MotionEvent时,ListView开始滚动。
当我将其用作ListView的一个项目时,如果用户触摸自定义视图,则ListView会滚动。我该如何防止发生这种情况?
我想我需要以某种方式聚焦于我的自定义视图。但是我不知道如何做到这一点。
更新:
我找到了可能的解决方案。在我的自定义视图的onTouchEvent(Motion event)方法中,我放置了getParent()。requestDisallowInterceptTouchEvent(true)。
没有这个选项时,当用户触摸自定义视图时,事件队列看起来像这样:
MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE MotionEvent.ACTION_MOVE MotionEvent.ACTION_CANCEL
当我收到具有代码MotionEvent.ACTION_CANCEL的MotionEvent时,ListView开始滚动。
setSelection()
就行了。 - SwayamsetSelection()
选择一行,这不是我需要的。 - Slava