【问题标题】:Making ListView align items correctly使 ListView 正确对齐项目
【发布时间】:2013-04-29 15:39:00
【问题描述】:

我有一个ListView,有 10 列和一个标题。正如您在下图中看到的那样,行未与标题对齐。

如果 TextViews 中的文本居中,则问题似乎会解决。 我尝试了很多方法,但都没有奏效。

*注意:请不要告诉我使用TableLayout。我已经这样做了,但加载速度要慢得多。

这是 ListView 的 xml:

        <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/LinearLayout1"
        android:background="#d9d9d9" >

    </ListView>

这里是 list_header xml:

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/header_back"
android:orientation="horizontal" >

<TextView
    android:id="@+id/stockNumTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/stockNum"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/shapeTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/shape"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/weightTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/weight"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/colorTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/color"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/clarityTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/clarity"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/cutGradeTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/cutGrade"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/labTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/labb"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/priceTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/price"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/discountTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_weight="1"
    android:text="@string/disc"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />

<TextView
    android:id="@+id/statusTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
    android:text="@string/status"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="16sp" />
</TableRow>

这里是 list_item xml:

<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item_selector"
android:clickable="true"
android:orientation="horizontal" >

<TextView
    android:id="@+id/stockNumTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/stockNum"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/shapeTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/shape"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/weightTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/weight"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/colorTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/color"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/clarityTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/clarity"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/cutGradeTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/cutGrade"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/labTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/lab"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/priceTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/price"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/discountTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/disc"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@android:color/black"
    android:textSize="14sp" />

<TextView
    android:id="@+id/statusTxt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="4dp"
    android:layout_marginTop="4dp"
    android:layout_weight="1"
    android:text="@string/status"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="@color/red"
    android:textSize="14sp" />
 </TableRow>

谢谢!

【问题讨论】:

    标签: android listview android-listview tablelayout


    【解决方案1】:

    使标题和项目的文本大小相同 - 项目的 ddi 14sp 和标题的 16sp,并从项目中删除边距,如果问题仍然保持不变,请将边距/填充添加到列表项

    【讨论】:

    • 文本大小变得更好,但我仍然希望每个列表项都位于每个标题下方的中心。我的意思是说状态信应该在状态标题下居中。
    • 啊好吧,然后把这个属性放在每个列表项中,android:gravity="center_horizo​​ntal" 或者你可以把它作为表格行属性,两种方式都应该解决
    • 据我所知,您将 layout_weigth=1 放入每个项目,但从不将 android:weigthSum 放入主 TableRow 标记,放入该属性并将其值写入总权重,这应该可以
    • 我写的其中一个解决方案应该可以解决,我想不出什么了:/
    猜你喜欢
    • 2013-08-07
    • 2013-06-14
    • 2010-12-15
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2021-01-10
    相关资源
    最近更新 更多