在不同的 LinearLayouts 中对齐 TextView 宽度

Align TextView widths in different LinearLayouts

我有这个界面:

使用下面的片段XML。 是否可以对齐 TextView 的宽度,使它们的宽度都相同?

例如,ODOMETER 似乎是文本视图中最长的单词。如何调整所有其他 TextView 的宽度以匹配里程表?这样他们都排成一行,界面会更整洁。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              tools:context="com.mycompany.myapp.Views.MasterDetails.VehicleFragment">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="false"
        android:scrollbars="none">

        <LinearLayout
            android:id="@+id/scrollViewVehicle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">


            <!-- YEAR -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="YEAR"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editYear"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="number"
                    android:maxLength="4"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- MAKE -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="MAKE"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <AutoCompleteTextView
                    android:id="@+id/editMake"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- MODEL -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView

                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="MODEL"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>


                <AutoCompleteTextView
                    android:id="@+id/editModel"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- BODY -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView

                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="BODY"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <AutoCompleteTextView
                    android:id="@+id/editBody"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- COLOR -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView

                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="COLOR"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <AutoCompleteTextView
                    android:id="@+id/editColor"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- TAG -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="TAG"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editTag"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>

            </LinearLayout>

            <!-- STATE -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="STATE"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <AutoCompleteTextView
                    android:id="@+id/editState"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>

            </LinearLayout>

            <!-- Odometer -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="ODOMETER"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editOdometer"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- VIN -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal">

                <TextView

                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="VIN"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editVIN"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="0.7"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="17"
                    android:maxLines="1"/>

                <Button
                    android:id="@+id/btnScanVIN"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:background="@color/COLOR_TXI_BLUE"
                    android:text="SCAN"
                    android:textColor="@color/COLOR_TXI_WHITE"
                    android:textStyle="bold"/>
            </LinearLayout>

            <!-- Other -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TextView

                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="OTHER"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editOther"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>


        </LinearLayout>


    </ScrollView>


</LinearLayout>

当然可以。您正在为每对标签文本字段使用水平布局。按如下操作:

  1. android:weightSum="z" 添加到每个 LinearLayout
  2. 为每个标签添加 android:layout_weight="0.y"
  3. android:layout_weight="0.x" 添加到每个文本字段

注意 0.x + 0.y 必须等于 z。显然你需要设置数值。


编辑: 此代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.mycompany.myapp.Views.MasterDetails.VehicleFragment">

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="false"
        android:scrollbars="none">

        <LinearLayout
            android:id="@+id/scrollViewVehicle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">


            <!-- YEAR -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="1"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="YEAR"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <EditText
                    android:id="@+id/editYear"
                    android:layout_width="match_parent"
                    android:layout_weight="0.8"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="number"
                    android:maxLength="4"
                    android:maxLines="1"/>
            </LinearLayout>

            <!-- MAKE -->
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="1"
                android:orientation="horizontal">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="0.2"
                    android:paddingTop="10dp"
                    android:text="MAKE"
                    android:textColor="@color/COLOR_TXI_BLUE"
                    android:textStyle="bold"/>

                <AutoCompleteTextView
                    android:id="@+id/editMake"
                    android:layout_width="match_parent"
                    android:layout_weight="0.8"
                    android:layout_height="match_parent"
                    android:imeOptions="actionDone"
                    android:inputType="text"
                    android:maxLength="30"
                    android:maxLines="1"/>
            </LinearLayout>
        </LinearLayout>


    </ScrollView>


</LinearLayout>

效果很好,我得到了这个结果