如何从MotionEvent获取底层视图?

wwy*_*wyt 10 android

我的GestureListener类在onSingleTap()或onFling()等方法中接收MotionEvent.有没有办法确定此事件的基础视图?

背景:我有一个包含许多子视图的LinearLayout.此LinearLayout上有一个触摸侦听器,可以调用手势检测器.因此,当用户在任何子视图上执行手势时,LinearLayout的手势检测器将接收MotionEvent.但问题是,因为有很多孩子,我需要确切地知道用户使用了哪个孩子.但我找不到将坐标转换为视图的方法.有没有办法做到这一点?

一个丑陋的解决方案:动态添加孩子.因此,我可以将所有子项保留在列表中,然后当MotionEvent出现时,我可以遍历列表并查看该点是否在子项中.但我不喜欢这个想法.有没有更好的办法?

sat*_*sat -2

给孩子一个 id 并从父视图中使用parentView.findViewById(R.id.childviewid);