Android自定义列表行

时间:2013-10-31 14:18:10

标签: android xml listview row

我在创建自己的ListRow时遇到了麻烦。如果我只使用1 LinearLayout它工作正常,但当我尝试这个:

ListRow.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
 >

 <TextView
    android:id="@+id/id1"
     android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:paddingBottom="1dp"
    android:text="@string/unknown"
    android:textAppearance="?android:attr/textAppearanceListItem"
    android:textColor="@color/blue_light"
    android:textStyle="bold" />

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/id2"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="@string/unknown"
        android:textAppearance="?android:attr/textAppearanceListItem"
        android:textColor="@color/blue_light"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/id2"
        android:paddingRight="1dp"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/unknown"
         />

    <TextView
        android:id="@+id/id3"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/unknown"
         />

      <TextView
        android:id="@+id/id4"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/unknown"
         />

</LinearLayout>

当我执行此操作时,它仅显示第一个Textview并忽略secons LinearLayout中的所有内容。我该怎么办?

2 个答案:

答案 0 :(得分:1)

LinearLayout的方向是horizontal,但是您的第一个TextView android:layout_width="match_parent"。将其更改为android:layout_width="wrap_content"或将LinearLayout orientation设置为vertical

答案 1 :(得分:0)

我真的不明白为什么你需要在另一个水平布局中使用水平线性布局,因为你没有任何特殊属性。

只需在第一个文本视图的宽度上从“match_parent”切换到“wrap_content”,摆脱额外的线性布局,并将所有文本视图放在顶级线性布局中。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/id1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="1dp"
        android:text="@string/unknown"
        android:textAppearance="?android:attr/textAppearanceListItem"
        android:textColor="@color/blue_light"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/id2"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/unknown"
        android:textAppearance="?android:attr/textAppearanceListItem"
        android:textColor="@color/blue_light"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/id2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingRight="1dp"
        android:text="@string/unknown" />

    <TextView
        android:id="@+id/id3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/unknown" />

    <TextView
        android:id="@+id/id4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/unknown" />

</LinearLayout>