Android RadioButton 不居中

Posted

技术标签:

【中文标题】Android RadioButton 不居中【英文标题】:Android RadioButton not centering 【发布时间】:2020-12-08 17:28:41 【问题描述】:

我有以下单选按钮:

它们是通过这种方法以编程方式生成的:

 private void initializeAbilityComponents() 
    rgAbility = view.findViewById(R.id.rgAbility);

    for (int i = 0; i < abilities.size(); i++) 
        RadioButton radioButton = new RadioButton(context);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        layoutParams.setMargins(4,4,4,4);
        radioButton.setLayoutParams(layoutParams);
        radioButton.setText(abilities.get(i).getName());
        radioButton.setId(i);
        radioButton.setGravity(Gravity.CENTER);
        PokemonUtils.setRoundedBackgroundColorToView(radioButton,selectedPokemon.getColor());
        rgAbility.addView(radioButton);
    

并添加到这个 xml RadioGroup 中:

  <RadioGroup
                android:id="@+id/rgAbility"
                android:layout_
                android:layout_
                android:layout_marginStart="6dp"
                android:layout_marginEnd="6dp"
                android:layout_marginBottom="4dp"
                android:layoutAnimation="@anim/default_layout_right_to_left_animation"
                android:orientation="vertical" />

但是,如您所见,它们并没有真正居中,当我居中时,我期望的输出是这样的:

我该如何解决这个问题?

【问题讨论】:

你想把圆点放在中间吗?如果您可以共享所有代码 不,我希望点保留在 start ,我只希望文本真正居中作为我的最后一张图片 【参考方案1】:

你必须添加:

radioButton.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
radioButton.setPadding(0,0,100,0); //left, top, right, bottom

右边的值为 100,您将文本向左移动

【讨论】:

【参考方案2】:

这是因为点和文本都是视图的一部分。如果您希望文本“更居中”,则必须添加paddingEnd。当然,这种填充取决于点的大小。

【讨论】:

向单选组或单选按钮添加填充结束? 添加到 RadioButton

以上是关于Android RadioButton 不居中的主要内容,如果未能解决你的问题,请参考以下文章

android 动态添加的radiobutton怎么用代码设置文字居中

android:radiobutton的大小可以更改,你是怎么实现的

Android Studio基础单选按钮RadioButton

如何使绘制的图像居中?

RadioButton.Checked 内 Tree

android中的radiobutton要点击2下才能选中