Wen*_*ger 1 android android-layout android-listview
我正在使用StickyListHeaders库,我很难弄清楚如何让它适用于我的特定应用程序.我想只在第二个列表项上有一个粘性标题.当我覆盖getHeaderId()方法并返回1时,它将标题放在列表的最顶部而不是第二个项目的顶部.滚动也很疯狂.有没有人使用这个图书馆取得了一些成功,可能知道发生了什么?
我正在使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
@Override public long getHeaderId(int position){return 1; }
如果你在这里返回1,那么每个项目(在每个位置)的headerId都是1.因此你只能在最顶部获得一个标题.这种行为是正确的.
您应该只返回应在同一标题下分组的项目的相同ID.例如,如果你要返回position/3; 每三个项目都会有一个标题.
希望这可以解决问题:)
| 归档时间: |
|
| 查看次数: |
3046 次 |
| 最近记录: |