BaseAdapter getView() 和回收器实际上是如何工作的?
How does the BaseAdapter getView() and the recycler actually work?
这是我的困惑:我有一个带有 8 个相同 items.I 的列表视图,通过添加按钮一个一个添加。它会在 first.Totally 处新建 8 个 convertView,我添加 15 [=27] =] 当我在第 11 个项目出现时向下滚动时,它再次新建一个 convertView ..为什么它不只使用回收站的 convertView?
部分代码如下:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)this.mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.city_item, parent, false);
viewHolder = new ViewHolder();
Log.d("test", "new one" + position);
viewHolder.checkBox = (CheckBox)convertView.findViewById(R.id.checkbox);
viewHolder.textView = (TextView)convertView.findViewById(R.id.tv_city);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
}
}
照片如下:
ListView没有按照回收原则工作。为此,您可以使用 RecyclerViews。签出 here
这是我的困惑:我有一个带有 8 个相同 items.I 的列表视图,通过添加按钮一个一个添加。它会在 first.Totally 处新建 8 个 convertView,我添加 15 [=27] =] 当我在第 11 个项目出现时向下滚动时,它再次新建一个 convertView ..为什么它不只使用回收站的 convertView?
部分代码如下:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater)this.mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.city_item, parent, false);
viewHolder = new ViewHolder();
Log.d("test", "new one" + position);
viewHolder.checkBox = (CheckBox)convertView.findViewById(R.id.checkbox);
viewHolder.textView = (TextView)convertView.findViewById(R.id.tv_city);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
}
}
照片如下:
ListView没有按照回收原则工作。为此,您可以使用 RecyclerViews。签出 here