我是Android编程的新手,我最近一直在阅读很多关于它的内容。 ListView
的一个特性,如果我理解正确的话,它会回收视图,并在项目离开屏幕时用新数据替换它。
就在几分钟前,我正在阅读有关无休止滚动的内容,RecyclerView
一直是实现此功能的热门选择之一。所以我查找了RecyclerView
,并在此video中提到RecyclerView
自动回收视图以将其重新用于新数据(作为对比其与{{1}的差异的方法}})。
我是否误解了ListView
其回收机制?或者,如果它确实回收,你如何实际实现(或者你怎么知道你正在实施)呢?
答案 0 :(得分:3)
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
}
有关详细信息,请参阅official documentation链接。