如何使用emilsjolander中的StickyListHeaders

时间:2016-04-21 12:11:42

标签: android listview github

我创建了一个listview,我想将其更改为使用emilsjolander中的StickyListHeaders,可以找到github代码here

我想知道我在哪里编写代码来说明标题应该在哪里(位置)

编辑:

我所拥有的是一个完成任务和撤消任务的数据库,因此我希望在撤消任务开始时有一个标题,而在完成任务的开始时需要另一个标题。像位置是已完成任务的大小的东西放一个标题

1 个答案:

答案 0 :(得分:1)

您已将link提供给此库的完整文档。如果您需要帮助实现这一点,您将需要更具体的问题。标题的位置不是由索引或类似的东西决定的,必须以正确的方式排序项目,并且必须实施getHeaderId()函数以正确反映您的部分。

这将为撤消(id 0)和完成(id 1)任务创建标题。

@Override
public long getHeaderId(int position) {
    return tasks[position].done() ? 1 : 0;
}

然后只需创建一个getHeaderView()实现来为您的两个部分创建标题视图。

@Override 
public View getHeaderView(int position, View convertView, ViewGroup parent) {
    HeaderViewHolder holder;
    if (convertView == null) {
        holder = new HeaderViewHolder();
        convertView = inflater.inflate(R.layout.header, parent, false);
        holder.text = (TextView) convertView.findViewById(R.id.text);
        convertView.setTag(holder);
    } else {
        holder = (HeaderViewHolder) convertView.getTag();
    }
    //set header text as first char in name
    String headerText = tasks[position].done() ? "Done" : "Undone";
    holder.text.setText(headerText);
    return convertView;
}

这只是一个粗略的代码示例,您必须修改它以匹配您的周围代码。