Android 布局问题 - ListView 项目

标签 android android-layout

我有一个 ListView ,每个项目呈现如下

<?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>

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

enter image description here

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

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

android:layout_height="100dip"

但是没用。

谁能帮忙吗

最佳答案

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

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>

关于Android 布局问题 - ListView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399854/

相关文章:

android - 在android客户端中使用URLCOnnection对象和Httppost的区别

android - 在空白处优雅地包装按钮中的文本

android - 滚动回收站 View 项目时滚动标题

java - 计数结束 - 'Click Counter'

Android - 选项卡导航 <while Spanning a new activity>

android - 如何设置位图大小以在 SurfaceView 上正确显示

java - 在另一个 Activity 中打开 TextView 链接 - 自定义 ClickableSpan

android - 如何在android中加载 Activity 的特定布局

java - 当我尝试从 Intent putExtra 时,出现空指针异常

android - 在 Android 中使用 Android 备份服务将数据备份到 Google 服务器