Android - listview包含不同的标题和不同的布局

时间:2013-05-28 07:01:05

标签: android android-layout android-intent android-listview

我需要实现带有多个标题的listview,每个标题下的列表项都不同。

例如,第一个标题名称是weather,在此标题下,每个列表项都有城市名称和当前温度。 第二个标题名称是contact,此标题下的每个项目包含人名,联系电话,呼叫图标,消息图标等。

有人知道如何在android中实现这个吗?

由于 Mindus

5 个答案:

答案 0 :(得分:2)

为了在ListView中实现多个标题和不同的布局,您应该使用 Section ListView

部分就像标题

你可以膨胀不同的布局。这里给出了Smiler示例Link

enter image description here

有关完整源代码,请浏览以下链接。

http://amitandroid.blogspot.in/2013/05/android-section-listview.html

答案 1 :(得分:1)

据我所知,ListView可以有多个标题,但你无法在你想要的位置找到它们。所有标题都位于顶部http://developer.android.com/reference/android/widget/HeaderViewListAdapter.html

我建议你使用分隔符。这也可以帮助你https://github.com/commonsguy/cwac-merge 使用此MergeAdapter,您可以按照您想要的顺序插入适配器和视图,然后将它们作为单个适配器呈现给列表视图,从而可以实现多个标头模拟。

答案 2 :(得分:0)

你必须为每种类型的单元格制作不同的布局(分别针对天气和单独的联系人),你必须覆盖列表视图的getView方法,并根据需要,只需设置所需的单元格以更新它

答案 3 :(得分:0)

谢谢大家,最后我得到了两个不同的listview和单独的linearlayouts。并在每个线性布局中使用textview作为标题。

答案 4 :(得分:0)

我建议不要对整个部分使用直线型布局。

对于标题和列表,我建议使用MergedAdapter,https://github.com/commonsguy/cwac-merge,或推荐自己的。{/ p>

对于多个单元格布局类型,这可以通过BaseAdapter中的以下方法在listviewadapter中得到支持

getItemViewType(int position)
getViewTypeCount()

这允许您指定正在使用的布局类型,然后适当地回收布局。