我正在使用库StickyListHeaders,我很难弄清楚如何让它适用于我的特定应用程序。我想只在第二个列表项上有一个粘性标题。当我重写getHeaderId()方法并返回1时,它将标题放在列表的最顶部,而不是放在第二项的顶部。滚动也真的很蠢。有没有人用过这个库可以知道发生了什么?单个项目的Android StickyListHeaders
我正在使用MergeAdapter,所以可能会导致一个问题,获取我设置的ListView的位置?
这里是我的适配器代码:
private class ProfileMergeAdapter extends MergeAdapter implements StickyListHeadersAdapter{
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
LayoutInflater nameInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = (RelativeLayout) nameInflater.inflate(R.layout.name_line, null);
convertView.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
profilePhotoBottom = (ImageView) convertView.findViewById(R.id.profile_pic_bottom);
TextView userName = (TextView) convertView.findViewById(R.id.userName);
userName.setText(Utility.userName);
profilePhotoBottom.setImageBitmap(photoBMPbot);
return convertView;
}
@Override
public long getHeaderId(int position) {
return 1;
}
}
感谢您的回复。今晚我会放弃它。 – Wenger
因此,如果我只想要第二个项目的标题,我可以做一个if语句,如果位置是1,则返回1,如果位置是其他任何东西,则返回0? – Wenger
我不知道StickyListHeaders的工作原理。我的猜测是,这将导致3个标题(一个在顶部,一个在第二个项目,一个在第三个项目之前)。但你应该试试看。 – MrMaffen