我需要移动一个ImageView,它是LinearLayout的直接子节点,向左移动一点。
会发生什么:视图被移动(可以看到“边界框”被移动,使用android布局管理器)但是drawable保持在同一个地方。
如果我将边距设置得足够低,也会在右侧切割可绘制的。
这是为什么?有什么建议吗?
答案 0 :(得分:4)
似乎元素在超出父级边界时总是被剪裁(也是使用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>
答案 1 :(得分:3)
如果您的容器有足够的填充,您可以将 clipToPadding 设置为 false 并使用负边距!
答案 2 :(得分:1)
为什么使用负保证金?在ImageView的另一侧使用正偏移到想要移动图像的方向,即如果要将图像向左移动,请在右侧使用更多的正边距。