我正在尝试向数组适配器中的单个视图添加一些填充。
在getView()方法中,我可以说:
if(position==0){
rowView.setPadding(60,0,0,0);
}
但该位置始终无误,因为convertView已被回收。
有没有人试图做这样的事情?
答案 0 :(得分:1)
第一项的位置始终为0
。但是,您将需要将其他项目的填充设置恢复正常:
if (position == 0) {
rowView.setPadding(60, 0, 0, 0);
} else {
rowView.setPadding(pad, pad, pad, pad);
}
或者,使用多种视图类型为第一项返回不同的布局:
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return (position == 0) ? 0 : 1;
}
@Override
public View getView(View convertView, ViewGroup parent, int position) {
if (convertView == null) {
if (getItemViewType(position) == 0) {
// Inflate padded layout
} else {
// Inflate standard layout
}
}
}