以编程方式在视图上设置负边距

7

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

3个回答

10

访问父级布局的布局参数,并按您的喜好修改它们:

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

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


当我将负整数放入第二行时,出现错误:“应该传递已解决的像素尺寸而不是资源ID:getResources()。getDimension *(-100)”。 - Pat Myron
val param = (cardSearch.layoutParams as ConstraintLayout.LayoutParams) param.topMargin = (-searchHeight/2) - listTotalScrollY cardSearch.requestLayout() - zihadrizkyef

0
使用此


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

没有

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

0

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

 ViewGroup.MarginLayoutParams params =
     (ViewGroup.MarginLayoutParams)view.getLayoutParams();
 params.topMargin = 100 - 200;   // -100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接