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

CQM*_*CQM 12 android margin padding radio-group radio-button

我在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);
Run Code Online (Sandbox Code Playgroud)

小智 23

填充

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

currentButton.setPadding(0, 10, 0, 10);
Run Code Online (Sandbox Code Playgroud)

这在顶部增加了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);
Run Code Online (Sandbox Code Playgroud)

  • 你好.我尝试了上面的边距代码,但它不起作用.按钮在另一个旁边很简单. (4认同)