【发布时间】:2014-10-29 03:55:53
【问题描述】:
我有一个列表,除了第一个和最后一个项目应该有不同的布局外,每个项目都应该有相同的布局。第一项正确显示了其独特的布局,但是当我在正确的一项和第一项的布局之间滚动进出视图时,最后一项发生了变化。这是我的适配器:
public class ListAdapterApp extends ArrayAdapter<App> {
Context context;
int layoutResourceId;
List<App> appList;
public ListAdapterApp(Context context, int layoutResourceId, List<App> appList) {
super(context, layoutResourceId, appList);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.appList = appList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
AppHolder holder = null;
if(row == null)
{
holder = new AppHolder();
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
if(position == 0){
holder.rowLayoutID = R.layout.list_column_appheaderitem;
} else if(position == appList.size() - 1){
holder.rowLayoutID = R.layout.list_column_appfooteritem;
} else {
holder.rowLayoutID = layoutResourceId;
}
row = inflater.inflate(holder.rowLayoutID, parent, false);//holder.packBackground = (LinearLayout)row.findViewById(R.id.packBackground);
row.setTag(holder);
}
else
{
holder = (AppHolder)row.getTag();
}
App app = appList.get(position);
return row;
}
static class AppHolder
{
public int rowLayoutID;
}
}
【问题讨论】:
-
尝试使用ViewHolder方法
标签: android listview custom-lists