ListView中的视图位置不一致

时间:2011-11-29 23:02:42

标签: android android-layout android-listview

我有一个ListView,它使用自定义适配器来显示数据行。每行包含两个TextView;一个是左对齐的,一个是右对齐的。

理想情况下,我想要的是每个TextView最多占用行宽度的一半。我使用以下行xml布局完成了这个:

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

<TextView
    android:id="@+id/description"
    style="@style/ProductSpecNameFont"
    android:layout_width="fill_parent"
    android:layout_gravity="left"
    android:layout_weight="1"
    android:padding="@dimen/margin_sides"
    android:text="Display Size" />

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" >

    <TextView
        android:id="@+id/value"
        style="@style/ProductSpecValueFont"
        android:layout_alignParentRight="true"
        android:padding="@dimen/margin_sides"
        android:text="3.5 Inches" />
</RelativeLayout>

这“几乎”完美无缺。问题是在右侧TextView上包含文本的行占用多行是不正确的。如我所愿,单行行是右对齐的。这是我正在谈论的截图:

Screen

为什么多行TextViews没有右对齐,我怎么能这样做呢?

2 个答案:

答案 0 :(得分:3)

尝试设置TextView的重力。看起来发生的是TextView与右边对齐,但文本本身是左对齐的。

android:gravity="right"

答案 1 :(得分:0)

尝试在LinearLayout上使用android:weightSum。像这样:

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

    <TextView
            android:id="@+id/description"
            style="@style/ProductSpecNameFont"
            android:layout_width="fill_parent"
            android:layout_gravity="left"
            android:layout_weight="0.5"
            android:padding="@dimen/margin_sides"
            android:text="Display Size" />

    <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.5" >

        <TextView
                android:id="@+id/value"
                style="@style/ProductSpecValueFont"
                android:layout_alignParentRight="true"
                android:padding="@dimen/margin_sides"
                android:text="3.5 Inches" />
    </RelativeLayout>