首页 > 解决方案 > 如何在 Android 的自定义单选按钮中居中文本

问题描述

我在 Android 中使用了一些自定义的 RadioButtons。不幸的是,文本无法在中心对齐,尽管我将重力和 textAlignment 属性设置为“中心”。您可以在我的屏幕截图中看到文本更多位于右侧:

在此处输入图像描述

在这里您可以看到代码:约束布局中的单选按钮:

  <RadioButton
        android:id="@+id/r_Button_Small"
        android:layout_width="@dimen/_73sdp"
        android:layout_height="@dimen/_28sdp"
        android:layout_weight="1"
        android:textSize="@dimen/_12ssp"
        android:background="@drawable/background_selector"
        android:text="@string/small"
        android:textColor="@drawable/text_selector"
        android:gravity="center"
        android:textAlignment="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.322"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginLeft="@dimen/_50sdp"
        app:layout_constraintVertical_bias="0.584"
         />

背景文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_checked="true"
        android:drawable="@drawable/state_checked" />

    <item android:drawable="@drawable/state_unchecked" />

</selector>

状态文件“已检查”

<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorBlue">
    </solid>
    <corners android:radius="@dimen/_25sdp"></corners>
</shape>

和“不受约束的状态”

<?xml version="1.0" encoding="UTF-8"?>
<shape android:shape="rectangle"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorTest">
    </solid>
    <corners android:radius="@dimen/_25sdp"></corners>
</shape>

如果您想知道“@dimen/_25sdp”是什么:它是来自https://github.com/intuit/sdp的可缩放尺寸单位

您知道如何将文本对齐到中心吗?我很欣赏每一条评论,并感谢您的帮助。

标签: androidradio-buttontext-alignment

解决方案


用中心改变你的重力来填充和删除文本对齐

android:gravity="fill"

推荐阅读