Android-将视图与复选框的文本对齐

时间:2019-07-02 15:36:50

标签: android checkbox alignment size

我在复选框下方有一个EditText。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <CheckBox
        android:id="@+id/confirmation_receipt"
        style="@style/AppTheme.Checkbox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingStart="@dimen/content_margin_s"
        android:paddingEnd="0dp"
        android:text="@string/bill_payment_confirmation_receipt" />

    <EditText
        android:id="@+id/confirmation_receipt_customer_email"
        style="@style/AppTheme.EditText.Info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/content_margin_xxxl"
        android:hint="@string/bill_payment_confirmation_receipt_customer_email_hint"
        android:imeOptions="actionDone"
        android:inputType="textEmailAddress|textNoSuggestions"
        android:selectAllOnFocus="true"
        android:visibility="gone" />

</LinearLayout>

选中该复选框将显示EditText。

我想将EditText视图与复选框的文本对齐。 enter image description here

问题是我不知道复选框图标的确切大小。奇怪的是,它的大小根据设备而变化。有没有办法对齐这两个文本?

1 个答案:

答案 0 :(得分:0)

您可以使用简单的技巧来实现此目的。我所做的是将复选框分开,它的文本为单独的textview。然后为新添加的textview和edittext设置相同的左边距值

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:text="@string/bill_payment_confirmation_receipt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginStart="40dp"/>

    <CheckBox
        android:id="@+id/confirmation_receipt"
        style="@style/AppTheme.Checkbox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</RelativeLayout>

<EditText
    android:id="@+id/confirmation_receipt_customer_email"
    style="@style/AppTheme.EditText.Info"
    android:layout_marginStart="40dp"
    android:hint="@string/bill_payment_confirmation_receipt_customer_email_hint"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="textEmailAddress|textNoSuggestions"
    android:selectAllOnFocus="true"
    android:visibility="gone" />

</LinearLayout>