【问题标题】:Vertically align elements in one layout with elements in another to be at same level?将一个布局中的元素与另一个布局中的元素垂直对齐以处于同一水平?
【发布时间】:2018-05-21 06:38:44
【问题描述】:

我有水平线性布局,其中有两个垂直线性布局。每个垂直布局包含5个TextView,如下所示:

如您所见,第一个布局中的 5 个文本视图与第二个布局中的 5 个文本视图处于同一垂直水平。但是当我将第二个布局的元素更改为 EditTexts 时,它开始看起来像这样:

如何将 TextView 与其对应的 EditText 对齐,使其处于完全相同的垂直水平?我可以将边距顶部和底部更改为所有 TextView。但这是很多工作,之后他们不在同一水平。我正在使用 Xamarin.Android。

【问题讨论】:

  • 您可以使用TableLayout 比LinearLayout 更容易完成此任务

标签: android alignment elements


【解决方案1】:

试试下面的代码。我想它会对你有所帮助。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:padding="10dp"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:weightSum="10"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:text="TextView1"
            android:layout_weight="2"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <TextView
            android:layout_width="match_parent"
            android:text="TextView1"
            android:layout_weight="2"
            android:layout_gravity="center"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <TextView
            android:layout_width="match_parent"
            android:text="TextView1"
            android:layout_weight="2"
            android:layout_gravity="center"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <TextView
            android:layout_width="match_parent"
            android:text="TextView1"
            android:layout_weight="2"
            android:layout_gravity="center"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <TextView
            android:layout_width="match_parent"
            android:text="TextView1"
            android:layout_weight="2"
            android:layout_gravity="center"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />

    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_weight="1"
        android:weightSum="10"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <EditText
            android:layout_weight="2"
            android:hint="edittext"
            android:layout_width="match_parent"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <EditText
            android:layout_width="match_parent"
            android:layout_weight="2"
            android:hint="edittext"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />
        <EditText
            android:layout_width="match_parent"
            android:gravity="bottom|center"
            android:layout_weight="2"
            android:hint="edittext"
            android:layout_height="wrap_content" />
        <EditText
            android:layout_width="match_parent"
            android:hint="edittext"
            android:gravity="bottom|center"
            android:layout_weight="2"
            android:layout_height="wrap_content" />
        <EditText
            android:layout_width="match_parent"
            android:hint="edittext"
            android:layout_weight="2"
            android:gravity="bottom|center"
            android:layout_height="wrap_content" />

    </LinearLayout>
</LinearLayout>

【讨论】:

    【解决方案2】:

    你可以通过TableLayout轻松做到这一点,它会随着视图的高度和宽度均匀地拉伸

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="*">
    <TableRow>
        <TextView
            android:padding="16dp"
            android:text="Text 1"
            android:textAppearance="@style/TextAppearance.AppCompat.Title" />
        <EditText android:hint="Edit text 1" />
    </TableRow>
    <TableRow>
        <TextView
            android:padding="16dp"
            android:text="Text 2"
            android:textAppearance="@style/TextAppearance.AppCompat.Title" />
    
        <EditText android:hint="Edit text 2" />
    </TableRow>
    <TableRow>
        <TextView
            android:padding="16dp"
            android:text="Text 3"
            android:textAppearance="@style/TextAppearance.AppCompat.Title" />
        <EditText android:hint="Edit text 3" />
    </TableRow>
    <TableRow>
        <TextView
            android:padding="16dp"
            android:text="Text 4"
            android:textAppearance="@style/TextAppearance.AppCompat.Title" />
        <EditText android:hint="Edit text 4" />
    </TableRow>
    <TableRow>
        <TextView
            android:padding="16dp"
            android:text="Text 5"
            android:textAppearance="@style/TextAppearance.AppCompat.Title" />
        <EditText android:hint="Edit text 5" />
    </TableRow>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2012-04-03
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多