将 TextView 与单选按钮标签对齐

Align TextView with Radio Button label

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

示例代码,其中我使用了左边距:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="12dp"
        android:orientation="vertical"
        android:padding="12dp">

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

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

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

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

您可以使用带有空标签的 RadioButton + TextView 来显示标签。这样你就需要让你 EditText 与那个 TextView

保持一致
<?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_width="match_parent"
    android:layout_height="match_parent"
    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_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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_width="wrap_content"
        android:layout_height="wrap_content"
        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>