Android - 包含具有多行的textview的listview行

时间:2013-04-09 10:18:28

标签: android android-layout android-listview

正如标题所说,我有一个列表视图,该行包含一个包含多行的textview。 由于它有多条线,因此它的行为类似于图片显示。

基本上它应该只显示第一行,但会发生的是下面的行正在向上推。 这只发生在冰淇淋三明治和果冻豆中。姜面包看起来还不错。

pic

这里是行的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_list_row"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_yyyy"
            android:gravity="center"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".14"
            android:textSize="15sp" />
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_dd"
            android:gravity="center"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".11"
            android:textSize="15sp" />
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_mm"
            android:gravity="center"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".11"
            android:textSize="15sp" />
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_state"
            android:gravity="center"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".13"
            android:textSize="15sp" />
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_pu"
            android:gravity="center"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".11"
            android:textSize="15sp" />
        <TextView
            android:focusableInTouchMode="false"
            android:clickable="false"
            android:focusable="false"
            android:id="@+id/item_detailes"
            android:paddingLeft="5dp"
            android:textIsSelectable="true"
            android:layout_width="0dp"
            android:layout_height="23dp"
            android:layout_weight=".40"
            android:textSize="15sp" />
</LinearLayout>

我尝试在行的xml中使用android:padding,但没有结果。

我该怎么办? 感谢。

3 个答案:

答案 0 :(得分:1)

enter image description here

尝试在布局中添加android:weightSum

如果我的列表有3列,那么在peren布局中我添加android:weightSum="3"

在所有孩子中我添加

android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"

检查列表行文件的下面代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="3" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

如果你想让它居中,那么在线性布局中使用android:gravity="center"

答案 1 :(得分:0)

我用这行代码修复它:android:singleLine =“true”。 现在看起来不错:

enter image description here

答案 2 :(得分:0)

如果在另一个地方你有一个多行文本和相同的issu你可以使用

android:layout_gravity="fill"