繁体   English   中英

如何确定与给定视图重叠的所有视图?

[英]How to determine all views which are overlapping with given view?

我必须确定与给定视图重叠的所有视图(矩形)。 (想法是获得给定视图的可见区域)

public List<Rect> getOverlappingViewsForGivenView(View givenView)
{
  //return overlapping rectangles
}

我可以使用getGlobalVisibleRect来获取Visible区域,但它只考虑父元素的重叠。 我试过上面的getGlobalVisibleRect例如。 由它的父ScrollView覆盖的视图。

首先,您可以使用getX()getY()获取屏幕上视图的位置。 如果它在滚动视图中您可能想要检查它是否“在屏幕上”等。

使用给定的边界,您将获得根视图(例如,调用getParent() ),并使用getChildCount()getChildAt(int)迭代子getChildCount()

这是一般的想法。 根据您的布局层次结构,这可能非常简单或非常棘手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM