【发布时间】:2013-05-28 07:01:04
【问题描述】:
我需要实现具有多个标题的列表视图,并且每个标题下的列表项是不同的。
例如第一个标题名称是天气,在此标题下,每个列表项都有城市名称和当前温度。 第二个表头名称是联系人,该表头下的每一项都包含人名、联系人号码、通话图标、消息图标等。
有人知道如何在android中实现吗?
谢谢 思维导图
【问题讨论】:
标签: android android-layout android-intent android-listview
我需要实现具有多个标题的列表视图,并且每个标题下的列表项是不同的。
例如第一个标题名称是天气,在此标题下,每个列表项都有城市名称和当前温度。 第二个表头名称是联系人,该表头下的每一项都包含人名、联系人号码、通话图标、消息图标等。
有人知道如何在android中实现吗?
谢谢 思维导图
【问题讨论】:
标签: android android-layout android-intent android-listview
为了在 ListView 中实现多个标题和不同的布局,您应该使用 Section ListView
Section 类似于 Header
你可以膨胀不同的布局。这里给出了微笑的例子Link
完整的源代码请点击以下链接。
http://amitandroid.blogspot.in/2013/05/android-section-listview.html
【讨论】:
据我所知 ListView 可以有多个标题,但是您无法将它们定位在您想要的位置。全部将位于顶部 http://developer.android.com/reference/android/widget/HeaderViewListAdapter.html
我建议你使用分隔符。这也可以帮助你https://github.com/commonsguy/cwac-merge
有了这个MergeAdapter,您可以按照您想要的任何顺序插入适配器和视图,然后将它们作为单个适配器呈现给列表视图,因此您可以实现多个标题模拟。
【讨论】:
您必须为每种类型的单元格制作不同的布局(天气分开,联系人分开),您还必须覆盖列表视图的 getView 方法,并且在需要时,只需设置您想要的单元格视图以更新它。
【讨论】:
谢谢大家,最后我得到了两个不同的列表视图和单独的线性布局。并在每个线性布局中使用 textview 作为标题。
【讨论】:
我建议不要对整个部分使用直线布局。
对于标题和列表,我建议使用 MergedAdapter,https://github.com/commonsguy/cwac-merge,或者使用您自己的。
对于多种单元格布局类型,listviewadapter 支持,使用 BaseAdapter 中的以下方法
getItemViewType(int position)
getViewTypeCount()
这允许您指定正在使用的不同类型的布局数量,然后适当地回收布局。
【讨论】: