如何扩大视图的触摸区域

16
我有一个垂直的LinearLayout,它应该作为快速跳转栏。因此,它的宽度很小,高度几乎与整个屏幕高度相匹配。当我触摸并在内部移动时,一切都正常。也就是说,我的onTouchEvent()被调用了,我可以获取(和跟随)手指的位置。但是由于这个栏不是很宽,用户很容易漂移到视图之外。因此,即使在视图之外,让用户继续移动也是必要的。实际上,就像ListView做的一样。
我不知道为什么ListViewonTouchEvent()即使在ListView之外也会被调用,但在我的LinearLayout情况下却不会。我追踪到它最终回到了dispatchTouchEvent()。在这里,同样的方法总是为ListView调用(即使在外面),但对于LinearLayout(当移动到外面时)则不会。
如果有人能给我提示,我会非常高兴。非常感谢!
Bernd

2个回答

8

3
我已经看过那篇帖子了,但据我所知它只能将大小扩展到下一个父级的尺寸。这意味着为了获得全屏高度,整个视图树必须被评估。我没有找出ListView是如何做到这一点的。 - Bernd

7

我认为您应该尝试增加视图的所有边缘的填充,这样当用户在填充区域附近点击视图时,ontouch或onClick方法将被调用。

android:padding="10dp"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接