14

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

我认为这有点像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);
4

1 回答 1

26

填充

普通LayoutParams没有应用填充的方法,但视图有。由于 RadioButton 是视图的子类,因此您可以使用View.setPadding(),例如:

currentButton.setPadding(0, 10, 0, 10);

这会在顶部添加 10px 填充,在底部添加 10px。如果您想使用 px 之外的其他单位(例如dp,您可以TypedValue.applyDimension()先将它们转换为像素。

边距

边距应用于某些特定的 LayoutParams 类,这些类是 MarginLayoutParams的子类。确保在设置边距时使用特定的子类,例如,RadioGroup.LayoutParams而不是通用的 ViewGroup.LayoutParams (当您的父布局是 a 时RadioGroup。然后你可以简单地使用MarginLayoutParams.setMargins().

样本:

RadioGroup.LayoutParams params 
           = new RadioGroup.LayoutParams(context, null);
params.setMargins(10, 0, 10, 0);
currentButton.setLayoutParams(params);
于 2012-06-08T15:38:28.340 回答