gpt4 book ai didi

android - ListView 项目回收

转载 作者:太空狗 更新时间:2023-10-29 16:39:36 25 4
gpt4 key购买 nike

我有一个包含 14 行的 ListView ,每个项目都作为 View Pager。这是我的 getView() 方法:

    @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
FindMyBeerPager findMyBeerPager;
if(convertView==null){
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.beer_list_item, parent,false);

findMyBeerPager = new FindMyBeerPager(context, findBeerDataList.get(position));
holder.beerPager = (ViewPager)convertView.findViewById(R.id.mypager);
holder.beerPager.setAdapter(findMyBeerPager);

System.out.println("Recycling view position"+position);
holder.beerPager.setTag(findMyBeerPager);

convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
System.out.println("Recycled"+position);
}

return convertView;
}
}

class ViewHolder{
ViewPager beerPager;
}

问题: 我面临的问题是,当我向下滚动 ListView 时,我没有获得更多的行值,即 ListView 与以前的值一起回收。我不知道为什么会这样。我必须发送 View Pager(每个位置的数据项)。在向下滚动之前一切正常。

最佳答案

将 getView 更改为

 @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
FindMyBeerPager findMyBeerPager;
if(convertView==null){
holder = new ViewHolder();
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.beer_list_item, parent,false);
holder.beerPager = (ViewPager)convertView.findViewById(R.id.mypager);
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}

findMyBeerPager = new FindMyBeerPager(context, findBeerDataList.get(position));
holder.beerPager.setTag(findMyBeerPager);
holder.beerPager.setAdapter(findMyBeerPager);
return convertView;
}
}

您可以将 LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 移动到适配器类的构造函数中。

还使用 Log 代替 System.out.println 进行日志记录

How ListView's recycling mechanism works

ViewPager and OnItemClickListener in ListView

在上面的链接中查看 Dianne Hackborn 的回答。

关于android - ListView 项目回收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20159386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com