我开始使用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
答案 0 :(得分:0)
您只需在每个行的XML布局中包含许多图像,并在不再需要它们时将这些图像的可见性设置为GONE
(您可以将图像放在一个布局XML中文件,然后{3}在你的行布局文件上这3次。
您可以通过将图像布局XML文件多次膨胀到每行所需的次数然后将其添加到行视图中来实现(但如果您第一次添加2个图像,则会产生回收问题)下一行需要3);但从我记得你不能将膨胀的内容添加到适配器行或你得到一个例外(不完全确定,所以如果有疑问,试试看。)
答案 1 :(得分:0)
在特定行中,您可以将图片视图放置在该行的文本视图下方,当您不需要显示它们时,可以通过将可见性设置为 GONE 来隐藏它。