我有一个类延伸ViewGroup
,并希望从它得到每个MotionEvent
。到目前为止,我有这样的:追踪ViewGroup中的MotionEvent
class TestViewGroup extends ViewGroup {
public TestViewGroup(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("TestViewGroup", "X: " + (int)event.getX() + " Y: " + (int)event.getY());
return true;
}
}
的onTouchEvent(MotionEvent event)
方法能够捕捉MotionEvent
每次我把我的手指在屏幕上的时间。但是如果我在手指仍然下垂的时候将手指放在屏幕上,它将不会继续跟踪我手指的坐标。我知道在延伸View
的课堂中,可以在手指在View
中移动时跟踪手指。我只是想知道如何将相同的想法应用于ViewGroup
。
你知道,你是对的,它与View或ViewGroup无关,它实际上与我认为如何整合它有关。我试图将ViewGroup放入系统的WindowManager中,以便它可以在系统覆盖层上保持不变(基本上显示一个视图,而不管顶部有什么活动)。你知道是否将视图添加到WindowManager会影响触摸事件如何传递给它? – Brian
@AeroDroid ...听起来像是一件有趣的事情,我会建议打开另一个问题并重新措词,还要添加一些代码。您可能还会尝试使用@Override public boolean dispatchTouchEvent(MotionEvent event){}作为替代方法,因为它在获取事件时似乎更健壮一些,但您需要添加一些代码 – Idistic
其实刚才我刚刚提出了一个新问题,这里请看看它[这里](http://stackoverflow.com/questions/6725636/getting-all-motionevents-with-windowmanager-layoutparams-flag-watch-outside-touch)。 – Brian