【问题标题】:Add padding to the left of radio button drawable在单选按钮可绘制的左侧添加填充
【发布时间】:2020-03-07 00:38:47
【问题描述】:

我正在尝试在单选按钮的左侧添加填充。但实际上在drawable和text之间添加了padding。

我得到了什么:drawable 和 text 之间的空间

我想要的:drawable左侧的空间

我创建单选按钮的方法:

private RadioButton createRadioButton(String text) {
    RadioButton btn = new RadioButton(requireContext());

    btn.setId(View.generateViewId());
    btn.setText(text);
    btn.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
    btn.setTextColor(answerButtonColor);
    btn.setButtonTintList(answerButtonColor);

    int pxHorizontal = Utils.convertDpToPx(requireContext(), 24);
    int pxVertical = Utils.convertDpToPx(requireContext(), 16);
    btn.setPadding(pxHorizontal, pxVertical, pxHorizontal, pxVertical);

    btn.setLayoutParams(new RadioGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT
    ));

    return btn;
}

有没有办法在单选按钮的左侧添加填充?

【问题讨论】:

  • 您可以在其中创建一个带有 MaterialRadioButton 的布局,然后在您的代码中添加该布局。通过这种方式,您可以根据需要设置单选按钮的样式。适合你的工作吗?

标签: java android radio-button


【解决方案1】:

RadioButton 是 CompundButton 的子类,因此我们可以在复合按钮上绘制并为其添加插图。

val compoundButtonDrawable = CompoundButtonCompat.getButtonDrawable(radioButton1)
val insetDrawable = InsetDrawable(compoundButtonDrawable, 32, 0, 0, 0)
radioButton1.buttonDrawable = insetDrawable

【讨论】:

  • 这将解决间距问题,但会导致单选按钮开始时背景颜色不显示。
  • @22LHS 在 RadioGroup 上设置背景颜色而不是 RadioButton
  • 此解决方案不适合我需要实现的目标,因为稍后将根据其他标准“突出显示”某些单选按钮。您提出的解决方案不允许在单个单选按钮上设置不同的背景。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
相关资源
最近更新 更多