Ela*_*d92 20 android click touch touch-event android-layout
我试图了解Android如何处理触摸事件并且有点困惑.根据我的理解,触摸事件被发送到根视图并传递给孩子们.我有一个FrameLayout
容器Fragment
.第一个片段视图是a ScrollView
,第二个是某种Gallery
(HorizontalListView),最后一个也是FrameLayout
.每次布局中只有一个片段.我想要做的是识别屏幕上的用户滑动,以供应用程序使用.我想计算滑动并在经过一些滑动后做一些事情.
我试图把一个OnTouchListener
放在顶部FrameLayout
,但当孩子是ScrollView
或那个时它不会被调用Gallery
.我试图返回false
,也在true
最后onTouch
,但我得到相同的结果 - 它永远不会被调用.
我该怎么做?我只是想"透明地"处理触摸事件并传递它们,就像我甚至没有触摸它们一样.
JRa*_*ond 26
我的理解是,它实际上是另一个方向.子视图首先触发事件(有点).dispatchTouchEvent()
调用根视图得到它,它将事件传播到子onTouchEvent()
节点,然后,根据它们是返回true还是false,onTouchEvent()
调用父节点.
拦截这样的事情的正常解决方案是覆盖dispatchTouchEvent(MotionEvent ev)
一个人的活动,如下所示:
@Override
public boolean dispatchTouchEvent (MotionEvent ev) {
// Do your calcluations
return super.dispatchTouchEvent(ev);
}
Run Code Online (Sandbox Code Playgroud)
这个的文档在这里.请注意,您也可以在任何方法中覆盖该方法ViewGroup
(例如a FrameLayout
等)
归档时间: |
|
查看次数: |
22735 次 |
最近记录: |