如何在 Listview 中添加另外一种样式的条目?

请输入图片描述

灰色部分是正常的内容,我想加一个红色的部分,例如显示为:以下是2014.8.15的帖子。
各位有什么好的建议吗?

阅读 8.2k
3 个回答

我的处理方式是,所有的item都写成下面这个样子

请输入图片描述

上面红色的部分默认为View.GONE,通过对比不同item数据的差别来决定是否显示,示例:

    if (position == 0) {
        viewholder.titleView.setText(title);
        viewholder.titleView.setVisibility(View.VISIBLE);
    } else {
        // 判断需要显示title还是内容
        String lastType = mDataSource.get(position - 1).getCatalogue();
        if (sid.getCatalogue().equals(lastType)) {
            // 隐藏标题
            viewholder.titleView.setVisibility(View.GONE);
        } else {
            // 显示标题
            viewholder.titleView.setText(title);
            viewholder.titleView.setVisibility(View.VISIBLE);
        }
    }

也可以参考下面这两个项目:

https://github.com/beworker/pinned-section-listview
https://github.com/emilsjolander/StickyListHeaders

我在项目上的处理和 @食用淡水鱼 一样~ 不知道有没有更好的办法可以学习下...

如果要再稍微提高效率的话,可以将这个Item写成一个自定义View,然后在里面做addView操作(因为看楼主这个特殊的View显示的几率相对比较小,所以不需要太多的Item都有这个View,影响效率).

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题