7

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

4

3 回答 3

10

访问父布局的布局参数并根据需要修改它们:

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

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

于 2013-08-29T13:39:44.780 回答
0

用这个

params.setMargins(0,5-10,0,0);

params.setMargins(0,-5,0,0);
于 2018-04-09T09:18:55.907 回答
0

对我来说,使用数学似乎足以欺骗它。

 ViewGroup.MarginLayoutParams params =
     (ViewGroup.MarginLayoutParams)view.getLayoutParams();
 params.topMargin = 100 - 200;   // -100
于 2017-07-06T02:58:12.947 回答