在列表视图中对齐两个文本视图

时间:2016-03-18 11:11:13

标签: android listview padding

这就是我所拥有的:

enter image description here

有选项,每个选项都有内容。选项编号(A,B,C,D)位于单独的文本视图中,其内容位于单独的文本视图中。

我正在尝试的是将选项号与选项内容的第一行对齐。我尝试设置常量paddingTop,但随着选项内容中的行数更改,它会不对齐。关于如何做的任何建议?

这是xml的一部分:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/options"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp">

    <TextView
        android:id="@+id/option_number"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="10"
        android:text="A"
        android:paddingLeft="5dp"
        android:textSize="17sp"
        android:textStyle="bold"
        android:textColor="@color/charcoal"/>



    <TextView
        android:id="@+id/option_content"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="100"
        android:textSize="17sp"
        android:gravity="center|left"
        android:paddingRight="20dp"
        android:text="option content...."
        android:textColor="@color/charcoal"/>

我可以通过动态获取paddingTop选项内容并将相同的填充设置为选项编号来实现吗?

5 个答案:

答案 0 :(得分:1)

设置android:gravity =&#34; top&#34; for option_number TextView android:gravity =&#34; top | left&#34; for option_content。或者,使用相对布局并使用layout_aligntop

答案 1 :(得分:1)

尝试使用以下内容。

在xml中替换它。

.container-fluid{
     height:calc(100vh - 120px);
}

已完成。

肯定会对你有所帮助。

答案 2 :(得分:0)

尝试在 option_content

上设置android:layout_alignBaseline="@id/option_number"

答案 3 :(得分:0)

您可以使用相对布局而不是线性布局,但您必须稍微更改您的xml。因此,如果您决定使用它,您可以将下一个属性设置为第一个TextView

android:layout_alignTop="@+id/option_content"

它可以帮助你。

答案 4 :(得分:0)

使用:android:layout_centerVertical="true"

建议,可以结合使用以下三种方式轻松达到你想要的效果:
1)CenterVertical
2)ToRightOf
3)RelativeLayout。

e.g:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/options"
    android:layout_width="match_parent"
    android:layout_height="80dp">

    <TextView
        android:layout_centerVertical="true"

        android:id="@+id/option_number"
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:text="A"
        android:paddingLeft="5dp"
        android:textSize="17sp"
        android:textStyle="bold"
        android:textColor="@color/charcoal"/>

    <TextView
        android:layout_toRightOf="@id/option_number"
        android:layout_centerVertical="true"

        android:id="@+id/option_content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17sp"
        android:text="option content...."
        android:textColor="@color/charcoal"/>