【问题标题】:Android - listview contains different header and different layoutsAndroid - listview 包含不同的标题和不同的布局
【发布时间】:2013-05-28 07:01:04
【问题描述】:

我需要实现具有多个标题的列表视图,并且每个标题下的列表项是不同的。

例如第一个标题名称是天气,在此标题下,每个列表项都有城市名称和当前温度。 第二个表头名称是联系人,该表头下的每一项都包含人名、联系人号码、通话图标、消息图标等。

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

谢谢 思维导图

【问题讨论】:

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


【解决方案1】:

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

Section 类似于 Header

你可以膨胀不同的布局。这里给出了微笑的例子Link

完整的源代码请点击以下链接。

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

【讨论】:

  • @mindus bartinger.at/listview-with-sectionsseparators 这是相关示例。
  • 但是我如何使用不同的布局
  • @mindus我已经编辑了我的答案。我已经从侧面完成并发布了完整的源代码。你会得到你想要的答案。如果是这样,请接受我的回答。谢谢
  • 很好,感谢您的回复。但我需要这两个部分都应该是可滚动的。在您的示例中,我需要分别滚动天气和联系人。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    您必须为每种类型的单元格制作不同的布局(天气分开,联系人分开),您还必须覆盖列表视图的 getView 方法,并且在需要时,只需设置您想要的单元格视图以更新它。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

        对于多种单元格布局类型,listviewadapter 支持,使用 BaseAdapter 中的以下方法

        getItemViewType(int position)
        getViewTypeCount()
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-12
          • 2011-06-14
          • 1970-01-01
          • 2012-03-28
          • 2015-09-30
          • 1970-01-01
          • 1970-01-01
          • 2014-05-09
          相关资源
          最近更新 更多