实现Android(没有第三方)Listview Subheaders

时间:2015-10-27 18:08:44

标签: android listview sectionheader

是否有可能按照Google指南的建议实施subheader行为(请参阅:https://www.google.com/design/spec/components/subheaders.html)? 特别是标题的粘性功能对我来说很重要。

我在github上找到了不同的库(例如https://github.com/emilsjolander/StickyListHeaders),但我想知道android sdk中是否有直接支持。

由于

1 个答案:

答案 0 :(得分:1)

如果你不想要它们粘, 并确切地知道标题将在什么位置(在您的数据数组中), 然后你可以简单地使用以下技巧:

标题只是另一个列表项类型,

所以扩展BaseAdapter并覆盖以下方法:

@Override
getViewTypeCount(){
    return 2;// 1(list items) + 1(for header)
}

@Override
getItemViewType(int position){
if(want to show header at position)
    return 1; // header item
else
    return 0;// regular items
}

@Override
getView(int pos,....)
{
    if(getItemViewType(pos)==0){// regular item
        inflate/reuse convertView; // cast to regular item & bind data
    } else {
        inflate/reuse convertView; // cast to hdr view and bind data 
    }
    return convertView;
}

如需详细分析,请点击以下链接: http://cyrilmottier.com/2011/07/05/listview-tips-tricks-2-section-your-listview/