Android编程:如何通过程序设置按钮的边距?

21

我知道这个问题之前已经被问过了,比如这样:

类似的问题

但我的问题是当我这样做时:

LayoutParams params = new LayoutParams(
        LayoutParams.WRAP_CONTENT,      
        LayoutParams.WRAP_CONTENT
);
params.setMargins(left, top, right, bottom);

显示params没有setMargins选项。有谁可以帮忙?


1
只需在最后添加一行代码,即 yourButton.setLayoutParams(params); - Pankaj
4个回答

15
LayoutParams params = new LayoutParams(
            LayoutParams.WRAP_CONTENT,      
            LayoutParams.WRAP_CONTENT
    );
params.setMargins(left, top, right, bottom);

我猜你可能漏掉了这一行

button.setLayoutParams(params);

12
您需要使用以下内容:LinearLayout.LayoutParamsRelativeLayout.LayoutParams

6
您缺少 setLayoutParams(params) 属性。
    LayoutParams params = new LayoutParams(
        LayoutParams.WRAP_CONTENT,      
        LayoutParams.WRAP_CONTENT
);
params.setMargins(left, top, right, bottom);
Your_Layout.setLayoutParams(params);

我希望这能对你有所帮助。


1
我猜我之前已经发布了相同的答案 :-D - Hanish Sharma
@HanishSharma 相同的逻辑,但不是复制 :P - IntelliJ Amiya
1
是的,我能理解。:-P - Hanish Sharma

0

对于 Kotlin,请执行以下操作:

val btn = Button(requireContext())
val lParams = LinearLayout.LayoutParams(
              LinearLayout.LayoutParams.MATCH_PARENT,
              LinearLayout.LayoutParams.WRAP_CONTENT
         )
val marginInDp = 5.toPx() // 5dp
lParams.setMargins(marginInDp,marginInDp,marginInDp,marginInDp)

在设置边距时要注意尺寸大小。一开始我设置了5像素(px),结果不起作用,后来发现太小了。


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