负边距演示:
场景
通过为其中一个视图设置负边距来重叠视图,以便它侵入另一个视图的边界框。
想法
如果应该重叠布局,它似乎可以按照您期望的方式工作。但我不想因为在不知不觉中做错事而遇到更大的问题。模拟器,物理设备,你的名字,当你使用负边距时,一切似乎都正常工作,一个视图侵入另一个视图边界框,并且取决于它在布局中的声明方式,它将位于另一个视图的上方或下方。
我也知道,从 API 21 开始,我们可以设置translationZ
andelevation
属性以使视图出现在其他视图之上或之下,但我的担忧基本上来自这样一个事实,即在属性的文档中layout_margin
明确指定边距值应该是正的,让我引用:
摘录:
指定此视图的左侧、顶部、右侧和底部的额外空间。这个空间在这个视图的范围之外。边距值应该是正数。必须是维度值,是一个浮点数加上一个单位,如“14.5sp”。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)、mm(毫米)...
自从最初提出这个问题以来的几年里,我没有遇到任何负边距问题,确实尽量避免使用它们,但没有遇到任何问题,所以即使文档指出,我也不是担心它。