我已经实现了一个 ExapndableListView(关于 ListView 的问题非常笼统)。
我添加了这个简化的代码示例(没有其他视图,因为没有它们问题是一样的)。
问题是当我滚动时,有一些我无法理解的分配。对于我滚动时显示的前 10-20 个新单元格(大约),分配了 3-4 MB +- 并且对于其余单元格,大约每 20 个单元格需要 1 MB。
据我所知,它不应该在加载列表后分配任何东西,只需重用适当的单元格。
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
EventListItem object = (EventListItem) sections.get(groupPosition)
.getItemAtIndex(childPosition);
ViewHolder holder;
if ( hView == null ) {
hView = mInflater.inflate(R.layout.popularity_row, null);
holder = new ViewHolder();
holder.title = (TextView) hView.findViewById(R.id.label);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) hView.getTag();
}
holder.id = object.getId();
holder.title.setText(object.getTitle());
return convertView;
}
static class ViewHolder {
String id;
}
可能是什么问题?当我滚动时它会分配什么?
非常感谢。