2013-08-29 77 views
6

我知道如何以编程方式设置View的边距,使用LinearLayout.LayoutParams和方法setMargins(int, int, int, int),但是如何在视图上放置负边距?以编程方式设置负边距

回答

7

访问你的父布局的布局PARAMS和修改它们,只要你喜欢:

ViewGroup.MarginLayoutParams params = 
     (ViewGroup.MarginLayoutParams)view.getLayoutParams(); 
params.topMargin = ...; // etc 
// or 
params.setMargins(...); 

你修改的布局后,调用view.requestLayout()

+0

我得到的错误:'应该通过解析的像素尺寸而不是资源ID在这里:getResources()。getDimension *( - 100)'当将负整数放入第二行时。 –

+0

将我的解决方法添加为下面的单独答案。 –

0

使用数学似乎欺骗了我足够的。

ViewGroup.MarginLayoutParams params = 
    (ViewGroup.MarginLayoutParams)view.getLayoutParams(); 
params.topMargin = 100 - 200; // -100 
相关问题