Android BaseAdapter:getView()上的convertView null重新输入

问题描述 投票:3回答:3

我正在根据http://bartinger.at/listview-with-sectionsseparators/中描述的技术来构建具有部分的ListView。但我想通过对非节项目重新使用convertView来扩展它。但是,我发现每次输入getView()方法时convertView变量都为null。有人可以解释为什么会这样吗?

ViewHolder holder;
final ListViewItem item = items.get(position);

if (item.isSection()) {
    Section section = (Section)item;

    convertView = inflater.inflate(R.layout.section, null);
    TextView title = (TextView) convertView.findViewById(R.id.section_title);
    title.setText(section.title);
} else {
    if (convertView == null) {
        Log.d("Adapter", "convertView was null");
    }

    Server server = (Server)item;

    convertView = inflater.inflate(R.layout.server_row, null);
    holder = new ViewHolder();
    holder.serverName = (TextView) convertView.findViewById(R.id.server_name);
    holder.serverStatusIcon = (ImageView)convertView.findViewById(R.id.server_status_icon);
    convertView.setTag(holder);

    holder.serverName.setText(server.name);
}

return convertView;

正在创建和显示该列表而没有错误,并且同时包含节和非节项目。

android baseadapter convertview
3个回答
5
投票

您执行正确吗?>

getItemViewType (int position) ?

0
投票

感谢Ixx慢跑了我:我没注意到的是我的清单太短了,它实际上并没有填满整个屏幕,所以没有回收利用。


0
投票

我刚刚使用自己创建的GridView进行了此操作。当我尝试为convertView分配一个新的膨胀视图时,我遇到了问题。我采用的通用结构是

© www.soinside.com 2019 - 2024. All rights reserved.