灰色部分是正常的内容,我想加一个红色的部分,例如显示为:以下是2014.8.15的帖子。
各位有什么好的建议吗?
我的处理方式是,所有的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,影响效率).
2 回答1.3k 阅读✓ 已解决
2 回答2.7k 阅读
2 回答1.8k 阅读
1 回答2.1k 阅读
1 回答1.2k 阅读
1 回答1.4k 阅读
1 回答619 阅读✓ 已解决
应该是重写BaseAdapter的两个方法,这样就可以实现多个不同类型的Item,参考下http://www.eoeandroid.com/thread-329890-1-1.html