Android 以编程方式设置视图的负边距

Android 以编程方式设置视图的负边距,android,android-layout,android-view,Android,Android Layout,Android View,我知道如何使用LinearLayout.LayoutParams和方法设置页边距(int,int,int,int)以编程方式设置视图的页边距,但如何在视图上设置负页边距?访问父布局的布局参数,并根据需要修改它们: ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)view.getLayoutParams(); params.topMargin = ...; // etc // or p

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

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

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

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

对我来说已经足够了

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

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


我得到一个错误:
应该传递解析的像素维度,而不是这里的资源id:getResources().getDimension*(-100)
当将负整数放入第二行时。
val param=(cardSearch.layoutParams as ConstraintLayout.layoutParams)param.topMargin=(-searchHeight/2)-listTotalScrollY cardSearch.requestLayout()
params.setMargins(0,-5,0,0);