布局位置/尺寸在显示之前出现问题

时间:2013-01-29 15:42:08

标签: android android-layout

我有一段代码,我在图像上显示一些图钉(Button和图像)(全屏ImageView)。 (您可以假设所有引脚都是动态创建的并且具有随机位置)。要求是这些引脚不应重叠。对于每个创建的引脚,我正在检查它是否与之前创建的任何其他引脚重叠。

要做到这一点,我试图获取这些引脚的Rect,并使用Rect.intersects()检查它们是否重叠。 问题是在实际显示视图之前,我无法使用getRight()getTop()getWidth()getHeight()等函数。它们都返回0.所以我无法获得矩形的正确数据。 我尝试将代码放在onWindowFocusChanged()onResume()等不同的回调中,但我仍然遇到同样的问题,所有维度/位置都返回0。

我正在寻找有关此问题的解决方案/建议。如何在显示引脚之前获得正确的位置和尺寸?

我查看了View.measure(),似乎我可以使用getMeasuredWidth()getMeasuredHeight()获得一些值,但getRight()getTop()仍会返回0。

1 个答案:

答案 0 :(得分:0)

首先添加不可见的矩形并检查位置,然后根据要求移动此位置并使其可见。这样就可以了。