首页 > 解决方案 > 带有动态数据的 android 中的粘性或固定分段列表视图

问题描述

我想实现这样的目标。我在每个调查标题下都得到“调查标题”(类型:字符串)和“不同数量的问题”(类型:字符串)。我想使用调查标题作为标题该调查的问题应显示在该调查标题标题下

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

将是第一个标题及其问题。当有多个带有问题的调查时,我想在我的 android 应用程序中实现粘滞或固定的标题行为。

标签: javaandroidandroid-recyclerviewandroid-listviewlistview-adapter

解决方案


您可以根据需要将 API 用于 StickyListHeaders,而不是使用字符。我拿了这个样本并更改了我的评论中指出的一些项目StickyListHeaders#getting-started//*** NOTE: “ ” 只需了解,如果提供了 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);
    }

推荐阅读