2016-02-21 30 views
0

這裏是我的困惑:我有一個listview有8個相同的項目。我通過添加按鈕逐個添加。並且它會首先新增8個convertView。最後,我添加了15個項目。但是當我向下滾動時,第11個項目出現了,它再次新建一個convertView ..爲什麼它不僅僅使用來自回收站的convertView?BaseAdapter getView()和回收器是如何工作的?


這裏有代碼的部分:

@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(); 
    } 
} 

下面是圖片:

+0

我見過一些關於convertView重複使用的表演,但他們沒有提到回收機構是如何工作的。 – thirtvanke

回答

0

的ListView d不符合回收原則。您可以爲此使用RecyclerViews。結帳here

+0

好的..謝謝..我想用recycleview代替.. – thirtvanke

相關問題