
我目前正在尝试此代码,但ID不能正常工作.
if (paramsVIEw1.topmargin > VIEw2Ystart && paramsVIEw1.topmargin < VIEw2Yend && paramsVIEw1.leftmargin > VIEw2Xstart && paramsVIEw1.leftmargin < VIEw2Xend) { return true } else return false; 仅当vIEw1触及vIEw2的一侧时,它才返回true.我想只有当vIEw1完全在vIEw2内时才返回true.
解决方法 你应该使用getleft(),getRight(),gettop()和getBottom().if (v1.gettop() >= v2.gettop() && v1.getleft() >= v2.getleft() && v1.getRight() <= v2.getRight() && v1.getBottom() <= v2.getBottom()) { ... 请注意,在布置父级时,即在addVIEw()之后不会立即使用这些值.
另一种可能更灵活的解决方案是使用每个视图的坐标构建Rect实例,例如:
Rect rect1 = new Rect(v1.getleft(),v1.gettop(),v1.getRight(),v1.getBottom());Rect rect2 = new Rect(v2.getleft(),v2.gettop(),v2.getRight(),v2.getBottom());
然后您可以使用rect1.contains(rect2)或Rect.intersects(rect1,rect2)或任何其他组合.
以上是内存溢出为你收集整理的Android – 如何知道视图是否覆盖RelativeLayout中的另一个视图全部内容,希望文章能够帮你解决Android – 如何知道视图是否覆盖RelativeLayout中的另一个视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)