我需要将作为 LinearLayout 的直接子级的 ImageView 向左移动一点。
会发生什么:视图被移动(可以看到“边界框”被移动,使用 android 布局管理器)但可绘制对象保持在同一个位置。
如果我将边距设置得足够低,drawable 也会在右侧切割。
为什么是这样?有什么建议吗?
- 澄清:我必须将图像向左移动。这意味着有点超出了包含布局的范围。
似乎元素总是在超出父级边界时被裁剪(也使用 clipChildren=false)。
一种解决方案是为要移动的项目之外的所有内容创建一个额外的容器布局。然后将容器布局向相反方向移动。
例如,要移动 -10dip:
<Original container ...>
<Item to be shifted/>
<New container with margin 10dip>
<Previous content of Original container ... />
</New container with margin 10dip>
</Original container>
如果您的容器有足够的填充,您可以将其clipToPadding设置为false并使用负边距!
你为什么使用负边距?在 ImageView 的另一侧向要移动图像的方向多使用一点正值,即如果要将图像向左移动,请在右侧使用更多的正边距。