java - 带有动态数据的 android 中的粘性或固定分段列表视图
问题描述
我想实现这样的目标。我在每个调查标题下都得到“调查标题”(类型:字符串)和“不同数量的问题”(类型:字符串)。我想使用调查标题作为标题,该调查的问题应显示在该调查标题标题下。
我已经尝试过https://github.com/emilsjolander/StickyListHeaders;和其他几个图书馆。它使用列表数据的第一个字符作为标题。在我的情况下这是不可能的。
这将是第一个标题及其问题。当有多个带有问题的调查时,我想在我的 android 应用程序中实现粘滞或固定的标题行为。
解决方案
您可以根据需要将 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);
}
推荐阅读
- docker - 如何将运行 Flask 应用程序的 minikube(kubernetes) 节点连接到 mysql docker 容器中的公共数据库?
- android - 关于Android架构组件中各个组件职责的问题
- ios - 使用 Observable 绑定 BehaviorRelay - RxSwift
- java - OO Spring REST API 设计——一种形式的转换或继承
- python - 为什么PIL保存的图像与原始图像相比具有不同的md5和
- c - Obtaining real device of VLAN-interface through the netlink
- java - 发布应用程序时的不同结果
- c - 在兼容 macOS 和 Linux 的 Windows 上创建静态库
- .net-core - 在本地禁用中间件
- hive - 在分区表上插入覆盖不会删除现有数据