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


请输入图片描述

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

Android listview

秋葉留美穂 10 years, 2 months ago

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

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

-凉_生- answered 10 years, 2 months ago

我的处理方式是,所有的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

羊毛香喷喷 answered 10 years, 2 months ago

应该是重写BaseAdapter的两个方法,这样就可以实现多个不同类型的Item,参考下 http://www.eoeandroid.com/thread-329890-1-1.html

install answered 10 years, 2 months ago

Your Answer