1

我有一个列表视图,每个项目都呈现如下

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"       
        android:layout_height="?android:attr/listPreferredItemHeight"
        android:padding="6dip">

   <ImageView  
        android:id="@+id/projectImage"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"
        android:src="@drawable/project_icon" 
        android:contentDescription = "@string/projectIcon" />       

   <LinearLayout
        android:id="@+id/projectDetails"
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="0dip">    

   <TextView
        android:id="@+id/topText"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:padding="10dip"
        android:textSize="16sp"
        android:textStyle="bold"        
        android:textColor="@color/text_color"
        android:gravity="center_vertical" />   

   <TextView
            android:id="@+id/bottomText"
            android:layout_width="fill_parent"
            android:layout_height="0dip"                
            android:paddingLeft="10dip"                
            android:textSize="14sp"         
            android:singleLine="true"           
            android:textColor="@color/locationText_color"
            android:ellipsize="marquee" />
   </LinearLayout>   
</LinearLayout>

但是我的列表视图没有正确呈现列表项太短并且没有显示任何内容见下文

在此处输入图像描述

我确实使用自定义样式。我也试过改变

android:layout_height="?android:attr/listPreferredItemHeight"

android:layout_height="100dip"

但它没有用。

任何人都可以帮忙吗?

4

2 回答 2

2

首先,正如我在评论中所说,inflate()当您扩充行布局文件时,您应该始终使用此版本的方法,以便LayoutParams为行视图设置正确的:

inflater.inflate(R.layout.row_layout, parent, false)

关于TextViews没有出现的两个,我不确定您希望它们如何放置。这是我的想法:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"       
        android:layout_height="?android:attr/listPreferredItemHeight"
        android:padding="6dip">

   <ImageView  
        android:id="@+id/projectImage"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="6dip"
        android:src="@drawable/project_icon" 
        android:contentDescription = "@string/projectIcon" />       

   <LinearLayout
        android:id="@+id/projectDetails"
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">    

   <TextView
        android:id="@+id/topText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:textSize="16sp"
        android:textStyle="bold"        
        android:textColor="@color/text_color"
        android:gravity="center_vertical" />   

   <TextView
            android:id="@+id/bottomText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"                
            android:paddingLeft="10dip"                
            android:textSize="14sp"         
            android:singleLine="true"           
            android:textColor="@color/locationText_color"
            android:ellipsize="marquee" />
   </LinearLayout>   
</LinearLayout>
于 2013-01-18T14:02:06.433 回答
0

您已将 TextViews 的高度设置为 0dp。

    android:layout_height="0dip"

将其更改为wrap_content或设置您的 TextViews 的权重。父 LinearLayout 的权重不适用于它们。

于 2013-01-18T13:35:34.943 回答