gpt4 book ai didi

android - ListView 会自动回收 View 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 08:33:45 25 4
gpt4 key购买 nike

我是 android 编程的新手,最近我阅读了很多有关它的书。 ListView 的功能之一,如果我理解正确的话,是它回收 View ,并在项目离开屏幕时用新数据替换它。

就在几分钟前,我正在阅读有关无限滚动的内容,RecyclerView 是实现此类功能的热门选择之一。所以我查找了 RecyclerView,在这个 video 中,提到 RecyclerView 自动回收 View 以将其重新用于新数据(作为对比其与 ListView 的区别的一种方式)。

我是不是对 ListView 的回收机制有误解?或者如果它确实回收了,你如何实际实现(或者你怎么知道你正在实现)它?

最佳答案

RecyclerView 会自动回收。为了使 ListView 回收项目,您需要在适配器类中进行此修改。

 @Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;

if (convertView == null) {
//brand new
convertView = LayoutInflater.from(mContext).inflate(R.layout.days_list_item, null);
holder = new ViewHolder();

// below is variables that will be different in your case
holder.numberOfDays = (TextView) convertView.findViewById(R.id.eventDays);
holder.sinceOrUntil = (TextView) convertView.findViewById(R.id.eventType);
holder.eventTitle = (TextView) convertView.findViewById(R.id.eventTitle);
holder.daysText = (TextView) convertView.findViewById(R.id.DaysText);

convertView.setTag(holder);
}
else {
//reusing item
holder = (ViewHolder) convertView.getTag();
}

// rest of the code
}

有关详细信息,请参阅 this链接。

关于android - ListView 会自动回收 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38367200/

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