将 TextView 与单选按钮标签对齐

Posted

技术标签:

【中文标题】将 TextView 与单选按钮标签对齐【英文标题】:Align TextView with Radio Button label 【发布时间】:2017-04-04 03:43:03 【问题描述】:

目标是将RadioButton 下的某些元素(例如TextInputView)与Radio Buttons 标签对齐。例子: 如您所见,Radio Buttons 右侧的标签应与下面的元素对齐。我怀疑设置简单的静态边距会有所帮助。

示例代码,我使用左边距的地方:

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_margin="12dp"
        android:orientation="vertical"
        android:padding="12dp">

        <android.support.v7.widget.AppCompatRadioButton
            android:id="@+id/exactPriceRadio"
            android:layout_
            android:layout_
            android:text="Set hourly rate"
            app:buttonTint="@color/colorPrimary"
            android:textSize="18sp"
            />

        <android.support.design.widget.TextInputLayout
            android:id="@+id/testLayout"
            android:layout_
            android:layout_
            android:layout_marginLeft="24dp"
            app:errorEnabled="true">

            <com.bitreg.bitregmobile.widgets.PriceEditText
                android:id="@+id/test"
                android:layout_
                android:layout_
                android:digits="0123456789."
                android:hint="Enter exact price"
                android:inputType="numberDecimal"
                android:textColor="@color/colorPrimaryDark"
                />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

但是左边距解决方案是不够的,因为它是一个硬编码的值,不是动态对齐的。

【问题讨论】:

你试过margin吗? 是的,现在我使用手工挑选的边距,但每个设备需要不同。不幸的是,我认为这不是一个很好的解决方案。 你能把代码贴出来吗? 对于您需要根据大小创建 xml 的每个设备 @Necroqubus 在此处发布您的 xml 代码。 【参考方案1】:

您可以使用带有空标签的RadioButton + TextView 来显示标签。这样,您需要将 EditTextTextView 对齐

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_
    android:layout_
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mvl.dagger2testapp.MainActivity">

    <RadioButton
        android:id="@+id/radioButton"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />

    <TextView
        android:id="@+id/textView"
        android:layout_
        android:layout_
        android:layout_alignBottom="@+id/radioButton"
        android:layout_alignParentTop="false"
        android:layout_alignTop="@+id/radioButton"
        android:layout_toEndOf="@+id/radioButton"
        android:layout_toRightOf="@+id/radioButton"
        android:gravity="center"
        android:text="Label For RadioBUtton" />

    <EditText
        android:id="@+id/editText"
        android:layout_
        android:layout_
        android:layout_below="@+id/textView"
        android:layout_toEndOf="@+id/radioButton"
        android:layout_toRightOf="@+id/radioButton"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name" />
</RelativeLayout>

【讨论】:

好主意!谢谢

以上是关于将 TextView 与单选按钮标签对齐的主要内容,如果未能解决你的问题,请参考以下文章

23.矩形交互样式与单选按钮设置(没太掌握好)

单选按钮和相关标签未对齐

jQuery如何将“禁用剪切和粘贴脚本”与单选按钮列表结合起来?

标签和组单选按钮水平对齐

将单选按钮与相应的标签对齐

java单选按钮传值