如何对齐这些TextView?

时间:2016-11-10 08:18:16

标签: android android-layout

我有以下布局:

enter image description here

正如您所看到的那样From DateTo Date由于From和To标签中的字符数而未对齐?

如何对齐它们?

这是XAML布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">


    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:animateLayoutChanges="false">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="From"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:gravity="center_vertical|center_horizontal"
            />
        <TextView
            android:id="@+id/start_date"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="7"
            android:singleLine="true"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:text="10-11-2016"
            android:layout_marginRight="0dp"
            android:contentDescription="Start date"
            style="@style/TextAppearance.EditEvent_SpinnerButton" />
        <TextView
            android:id="@+id/start_time"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            android:paddingTop="15dp"
            android:contentDescription="Start Time"
            android:text="13:58"
            android:layout_marginLeft="0dip"
            style="@style/TextAppearance.EditEvent_SpinnerButton" />
    </LinearLayout>



    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:animateLayoutChanges="false">


        <TextView
            android:id="@+id/to_label"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="To"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:gravity="center_vertical|center_horizontal"
        />

        <TextView
            android:id="@+id/end_date"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="7"
            android:singleLine="true"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:text="11-11-2016"
            android:layout_marginRight="0dp"
            android:contentDescription="End date"
            style="@style/TextAppearance.EditEvent_SpinnerButton" />
        <TextView
            android:id="@+id/end_time"
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            android:paddingTop="15dp"
            android:contentDescription="End Time"
            android:text="23:59"
            android:layout_marginLeft="0dip"
            style="@style/TextAppearance.EditEvent_SpinnerButton" />


    </LinearLayout>


</LinearLayout>

及相关风格:

<style name="TextAppearance" parent="android:TextAppearance">
</style>

<style name="TextAppearance.EditEvent_Spinner" parent="android:style/Widget.Holo.Light.Spinner">
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">#FF333333</item>
    <item name="android:layout_marginRight">12dp</item>
    <item name="android:layout_marginLeft">12dp</item>
</style>

<style name="TextAppearance.EditEvent_SpinnerButton" parent="TextAppearance.EditEvent_Spinner">
    <item name="android:paddingLeft">12dp</item>
    <item name="android:paddingRight">12dp</item>
</style>

2 个答案:

答案 0 :(得分:2)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical" android:layout_width="match_parent"
              android:layout_height="match_parent">


    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:animateLayoutChanges="false">
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:text="From"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:gravity="center_vertical|center_horizontal"
            android:layout_weight="0.20"/>
        <TextView
            android:id="@+id/start_date"
            android:layout_height="wrap_content"
            android:layout_weight="0.60"
            android:singleLine="true"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:text="10-11-2016"
            android:layout_marginRight="0dp"
            android:contentDescription="Start date"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"/>
        <TextView
            android:id="@+id/start_time"
            android:layout_height="wrap_content"
            android:layout_weight="0.20"
            android:paddingTop="15dp"
            android:contentDescription="Start Time"
            android:text="13:58"
            android:layout_marginLeft="0dip"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"/>
    </LinearLayout>


    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="5dip"
        android:animateLayoutChanges="false">


        <TextView
            android:id="@+id/to_label"
            android:layout_height="wrap_content"
            android:layout_width="0dp"
            android:text="To"
            android:paddingTop="10dp"
            android:paddingLeft="10dp"
            android:gravity="center_vertical|center_horizontal"
            android:layout_weight="0.20"/>

        <TextView
            android:id="@+id/end_date"
            android:layout_height="wrap_content"
            android:layout_weight="0.60"
            android:singleLine="true"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:text="11-11-2016"
            android:layout_marginRight="0dp"
            android:contentDescription="End date"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"/>
        <TextView
            android:id="@+id/end_time"
            android:layout_height="wrap_content"
            android:layout_weight="0.20"
            android:paddingTop="15dp"
            android:contentDescription="End Time"
            android:text="23:59"
            android:layout_marginLeft="0dip"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"/>


    </LinearLayout>


</LinearLayout>

<强>输出

here

答案 1 :(得分:2)

将WeightSum设置为父布局,然后除以与每个子视图的宽度对应的权重和值。

试试这个

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


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:animateLayoutChanges="false"
        android:weightSum="2.5"
        android:orientation="horizontal">

        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:gravity="center_vertical|center_horizontal"
            android:paddingLeft="10dp"
            android:layout_weight=".5"
            android:paddingTop="10dp"
            android:text="From" />

        <TextView
            android:id="@+id/start_date"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="0dp"
            android:layout_weight="1.5"
            android:contentDescription="Start date"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:singleLine="true"
            android:text="10-11-2016" />

        <TextView
            android:id="@+id/start_time"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="0dip"
            android:layout_weight=".5"
            android:contentDescription="Start Time"
            android:paddingTop="15dp"
            android:text="13:58" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dip"
        android:weightSum="2.5"
        android:animateLayoutChanges="false"
        android:orientation="horizontal">


        <TextView
            android:id="@+id/to_label"
            android:layout_width="0dp"
            android:layout_weight=".5"
            android:layout_height="wrap_content"
            android:gravity="center_vertical|center_horizontal"
            android:paddingLeft="10dp"
            android:paddingTop="10dp"
            android:text="To" />

        <TextView
            android:id="@+id/end_date"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="0dp"
            android:layout_weight="1.5"
            android:contentDescription="End date"
            android:paddingRight="4dp"
            android:paddingTop="15dp"
            android:singleLine="true"
            android:text="11-11-2016" />

        <TextView
            android:id="@+id/end_time"
            style="@style/TextAppearance.EditEvent_SpinnerButton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="0dip"
            android:layout_weight=".5"
            android:contentDescription="End Time"
            android:paddingTop="15dp"
            android:text="23:59" />
    </LinearLayout>
</LinearLayout>