我一直在使用一些技巧来拉伸父RelativeLayout
级内部的视图,以便它从左上角开始并在底部中心结束。虽然RelativeLayout
确实可以让您将某些东西定位在其自身的中心,但它似乎并不能让您将某些东西拉伸到同一点。
我的解决方案很简单,在该中心放置一些东西,并给它 1px 尺寸,使其成为 parent 的实际中心RelativeLayout
。不要误会我的意思,这是可行的,我对此没有任何问题,但是如果有更好的做法,我想知道它。
至于我在说什么的图形表示,让我添加一些图像来说明。
第一张图片的中心有一个无文本TextView
的RelativeLayout
,我给它的宽度是 0dp。正如您在下一张图片中看到的那样,这使我可以相对于该中心放置任何东西。我的观点是,如果不在中心添加额外的视图就无法做到这一点,这让我感到很奇怪,因为我可以看到诸如Layout to left of
or Layout to right of
but no Layout to center of
之类的属性。
所以这个场景可能更像是“它还没有坏,但我担心它会随时弹出”。然后另一方面,如果这是正确的做法,并且我帮助某人学习新事物,那也适用于我。
为什么我会问没有得到回答的问题!?我在这里设置赏金..
建议的最明智的事情(根据我的判断)是我LinearLayout
用 a替换 my View
,我认为它会占用更少的内存,即使它稍微少一点。所以我感谢@yorkw。我很惊讶以前没有人问过这个问题。
只是为了澄清,因为似乎对我实际追求的东西存在误解。我不希望某些东西占据父宽度/高度的一半。我正在寻求一种将其用作参考点的方法(这就是我在标题中所说的),这样我就可以做一些事情,例如将图像定位在中心的左侧,而无需添加占一半的线性布局和左侧的重力管他呢。
更新
从 API 14 开始,我们就有Space
了一个轻量级的View
子类,可能更适合这种黑客攻击。