具有动态数据的android中的粘滞式或固定式分段列表视图

时间:2019-03-28 12:20:53

标签: java android android-recyclerview android-listview listview-adapter

我想要实现类似this的功能。我在每个调查标题下都得到“调查标题”(类型:字符串)和“不同数量的问题”(类型:字符串)。我想使用调查标题作为标题,并且该调查的问题应显示在该调查标题的标题下

我已经尝试过https://github.com/emilsjolander/StickyListHeaders;和其他一些图书馆。它使用列表数据的第一个字符作为标题。在我看来这是不可能的。

This将是外观标题及其问题。当我要在自己的android应用程序中进行多项调查,询问他们的问题,粘性或固定标头行为。

1 个答案:

答案 0 :(得分:0)

您可以按需要使用StickyListHeaders的API,而不使用char。我获取了此样本,并更改​​了由我的注释“ //*** NOTE:”指示的几项StickyListHeaders#getting-started。仅需了解,如果提供了API,则可以更改Java中的实现。只是需要实验。此API中的任何内容均不强制您使用其“ char”方法或任何方法。这只是我假设的内置API。

 @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();
        }
        //*** NOTE: You can use the name here
        //set header text as first char in name
        String headerText = "" + countries[position].subSequence(0, 1).charAt(0);
        holder.text.setText(headerText);
        return convertView;
    }

    @Override
    public long getHeaderId(int position) {
        //*** NOTE: You could use the hashcode of the word here or your own implementation
        //return the first character of the country as ID because this is what headers are based upon
        return countries[position].subSequence(0, 1).charAt(0);
    }