首页 > 解决方案 > Android RadioButton 不居中

问题描述

我有以下单选按钮:

在此处输入图像描述

它们是在此方法中以编程方式生成的:

 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_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="6dp"
                android:layout_marginEnd="6dp"
                android:layout_marginBottom="4dp"
                android:layoutAnimation="@anim/default_layout_right_to_left_animation"
                android:orientation="vertical" />

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

在此处输入图像描述

我怎样才能解决这个问题 ?

标签: androidcentercenteringandroid-radiobuttonandroid-radiogroup

解决方案


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


推荐阅读