我在xml中有一个radiogroup,按钮是以编程方式生成的。如何以编程方式在按钮之间添加间距。
我认为它类似于LayoutParams
,但我的对象没有明显的setPadding
或setMargins
方法。
这就是我的尝试
RadioButton currentButton = new RadioButton(context);
currentButton.setText(item.getLabel());
currentButton.setTextColor(Color.BLACK);
//add padding between buttons
LayoutParams params = new LayoutParams(context, null);
params. ... ??????
currentButton.setLayoutParams(params);
答案 0 :(得分:22)
<强>填充强>
普通LayoutParams
没有应用填充的方法,但视图有。由于RadioButton是视图的子类,因此您可以使用View.setPadding(),例如:
currentButton.setPadding(0, 10, 0, 10);
这会在顶部添加10px填充,在底部添加10px。如果您想使用px 旁边的其他单位(例如dp
),您可以先使用TypedValue.applyDimension()
将它们转换为像素。
<强>边距强>
边距应用于子类MarginLayoutParams的某些特定LayoutParams类。确保在设置边距时使用特定的子类,例如RadioGroup.LayoutParams
代替通用ViewGroup.LayoutParams (当您的父布局为RadioGroup
)时。然后,您只需使用MarginLayoutParams.setMargins()
。
样品:
RadioGroup.LayoutParams params
= new RadioGroup.LayoutParams(context, null);
params.setMargins(10, 0, 10, 0);
currentButton.setLayoutParams(params);