0

我正在尝试设计一个包含 3 个文本视图的列表视图。1 个文本视图用于作者,第 2 个用于日期,最后一个用于评论。但是我在布局方面遇到了一些问题,而且我不是 XML 中的怪物。所以我确实需要一些建议。这是我的清单看起来像 atm:http ://tinypic.com/view.php?pic=357khhj&s=6

正如你所看到的,每当有人输入超过几个词(如 jesper 的评论)时,一切看起来都很糟糕。任何提示如何在没有行的情况下解决这个问题都会像图片中一样被搞砸?此外,我只希望能够在评论中显示 2 行文本,即使该人实际键入,例如 10 行。谢谢!

这是xml代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff" >

<TableLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="1"
    android:weightSum="1.0" >

    <TableRow>

        <TextView
            android:id="@+id/feedback_list_item_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="0.8"
            android:gravity="left"
            android:shadowColor="#bdbebd"
            android:shadowDx="1.0"
            android:shadowDy="1.0"
            android:shadowRadius="0.5"
            android:text="Unknown"
            android:textColor="#000000"
            android:textSize="16dp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/feedback_list_item_time"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="0.2"
            android:gravity="right"
            android:shadowColor="#bdbebd"
            android:shadowDx="1.0"
            android:shadowDy="1.0"
            android:shadowRadius="1.0"
            android:text="00:00"
            android:textColor="#3c6dae"
            android:textSize="16dp" />
    </TableRow>

    <TableRow>

        <TextView
            android:id="@+id/feedback_list_item_comment"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:shadowColor="#cccccc"
            android:shadowDx="1.0"
            android:shadowDy="1.0"
            android:shadowRadius="0.5"
            android:text="No comment"
            android:textColor="#222222"
            android:textSize="16dp" />
        >
    </TableRow>
</TableLayout>

</LinearLayout>
4

2 回答 2

0

为表格的每一行使用一个 RelativeLayout。例如,尝试使用以下代码代替您的两个 TableRows:

<RelativeLayout
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/feedback_list_item_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="left"
        android:shadowColor="#bdbebd"
        android:shadowDx="1.0"
        android:shadowDy="1.0"
        android:shadowRadius="0.5"
        android:text="Unknown"
        android:textColor="#000000"
        android:textSize="16dp"
        android:textStyle="bold"
        android:lines="1"/>

    <TextView
        android:id="@+id/feedback_list_item_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:gravity="right"
        android:shadowColor="#bdbebd"
        android:shadowDx="1.0"
        android:shadowDy="1.0"
        android:shadowRadius="1.0"
        android:text="00:00"
        android:textColor="#3c6dae"
        android:textSize="16dp" />

    <TextView
        android:id="@+id/feedback_list_item_comment"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@id/feedback_list_item_name"            
        android:shadowColor="#cccccc"
        android:shadowDx="1.0"
        android:shadowDy="1.0"
        android:shadowRadius="0.5"
        android:text="No comment"
        android:textColor="#222222"
        android:textSize="16dp"
        android:maxLines="2" />

</RelativeLayout>

此外,将 maxLines="2" 添加到注释 TextView 会将其限制为两行。

于 2012-06-19T15:12:22.993 回答
0

试试这个

<?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="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:singleLine="true" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:singleLine="true" />
    </LinearLayout>

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:singleLine="true" />

</LinearLayout>
于 2012-06-19T15:43:56.083 回答