android以编程方式在radiogroup按钮之间添加填充

时间:2012-06-08 15:34:33

标签: android radio-button padding margin radio-group

我在xml中有一个radiogroup,按钮是以编程方式生成的。如何以编程方式在按钮之间添加间距。

我认为它类似于LayoutParams,但我的对象没有明显的setPaddingsetMargins方法。

这就是我的尝试

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);

1 个答案:

答案 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);