如何扩展视图的触摸区域

Ber*_*rnd 12 android extend touch touch-event

我有一个垂直的LinearLayout.它应该作为快速跳跃杆.因此宽度非常小,高度几乎匹配整个屏幕高度.当我触摸它并在里面移动时,一切都很好.这意味着,我onTouchEvent()被召唤,我可以得到(并跟随)手指的位置.但由于条形图不是很宽,因此用户可以轻松地漂移到该视图之外.因此,即使在视图之外,也必须让用户继续运动.事实上同样的事情就像ListView一样.

我不知道为什么ListViewonTouchEvent()是,即使外面的时候叫ListView,但不是在我的情况LinearLayout.我把它追溯到了dispatchTouchEvent().这里的情况是相同的,即总是调用方法ListView(即使在外面),但在LinearLayout(在外面移动时)的情况下也不需要.

如果有人能给我一个提示,我会很高兴.非常感谢!

贝恩德

Tim*_*Tim 7

您可以使用Android的TouchDelegate功能.它支持更大的单一视图触摸区域.这是一个例子:https://stackoverflow.com/a/1343796/636579

  • 是的,我已经看到了这个帖子,但据我所知,只能将它扩展到下一个父母的大小.这意味着,为了获得全屏高度,必须评估整个视图树.我无法弄清楚ListView如何做到这一点. (2认同)

Meh*_*nir 6

我认为你应该尝试从所有方面增加视图的填充,以便当用户在填充区域中的视图附近点击时,ontouch或onClick方法将被调用

android:padding="10dp"
Run Code Online (Sandbox Code Playgroud)