0

我开始使用 Android LayoutInflater,我需要一些帮助。

我有一个 ListActivity,它使用以下 XML 中定义的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
    <ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
</LinearLayout>

这个 ListView 填充了一个 ArrayAdapter,它通过像这样膨胀另一个 XML 来生成每一行:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        >
        <TextView
            android:id="@+id/item_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:textSize="20dip"
            android:textColor="#FFF"
        />
        <ImageView
            android:id="@+id/item_icon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_marginRight="6dip"
            android:src="@drawable/example_icon"
        />
    </LinearLayout>
</LinearLayout>

这工作正常,但现在我想为每个项目显示可变数量的图标(因此,ListView 的每一行在 TextView 下可能有不同数量的 ImageView)。

也许我必须为图标列表定义另一个 XML,并以某种方式从嵌套布局构建 ListView?我不知道有什么更好的方法来做到这一点。有什么建议么?

谢谢!

编辑:这是我试图做的一个例子:http: //tinypic.com/r/2s9yniw/7

4

2 回答 2

0

您只需在每行的 XML 布局中包含一些图像,并将这些图像的可见性设置为GONE您不再需要它们时(您可以将图像放在一个布局 XML 文件中,然后include在您的行布局文件)。

您可以通过将图像布局 XML 文件按需要对每一行进行多次膨胀然后将其添加到行视图来做到这一点(但如果您第一次只添加 2 个图像和下一行,这会导致回收问题需要 3); 但是据我所知,您不能将膨胀的内容添加到 Adapter 行,否则会出现异常(不完全确定,如果有疑问,请尝试一下)。

于 2011-05-12T10:00:19.527 回答
0

在特定行中,您可以将图像视图放在该行的文本视图下方,当您不需要显示它们时,您可以通过将可见性设置为GONE来隐藏它。

于 2011-05-13T13:22:34.497 回答