摘要:利用完成復用把中獲得的控件在中復用省去重復創建控件一種常見的情況,舉例有五個固定的控件要利用顯示這種情況下,先創建好個控件,并綁定將放入根據計算出要取中的哪個
一。利用PagerAdapter.instantiateItem,destroyItem 完成復用
1) 把destroyItem中獲得的View控件,在instantiateItem中復用
省去重復創建View控件
private LinkedListmViewCache = null; @Override public Object instantiateItem(ViewGroup container, int position) { Log.e("test","instantiateItem " + position); ViewHolder viewHolder = null; View convertView = null; if(mViewCache.size() == 0){ convertView = this.mLayoutInflater.inflate(R.layout.viewadapter_item_layout , null ,false); TextView textView = (TextView)convertView.findViewById(R.id.view_pager_item_textview); viewHolder = new ViewHolder(); viewHolder.textView = textView; convertView.setTag(viewHolder); }else { convertView = mViewCache.removeFirst(); viewHolder = (ViewHolder)convertView.getTag(); } viewHolder.textView.setText(datas.get(position).title); viewHolder.textView.setTextColor(Color.YELLOW); viewHolder.textView.setBackgroundColor(Color.GRAY); container.addView(convertView ,ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ); return convertView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { Log.e("test","destroyItem " + position); View contentView = (View) object; container.removeView(contentView); this.mViewCache.add(contentView); }
2)一種常見的情況,舉例:有五個固定的控件要利用ViewPager顯示
這種情況下,先創建好5個控件,并綁定ViewHolder,將ViewHolder放入List,
@Override public Object instantiateItem(ViewGroup container, int position) { //根據position計算出要取List中的哪個ViewHolder viewhodler = list.get(index); return viewhodler.itemView; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/70768.html
摘要:前言最近發布了版本,新增功能,該功能在上并不友好,現在官方將此功能延續下來,這回是騾子是馬呢趕緊拉出來溜溜閱讀指南內容基于版本講解,由于正式版還未發布,如有功能變動有勞看官指出內容重點介紹的特性和預加載機制,另外包括的狀態和的生命周前言 最近ViewPager2發布了1.0.0-alpha04版本,新增offscreenPageLimit功能,該功能在ViewPager上并不友好,現在官方將...
閱讀 2400·2021-09-08 09:45
閱讀 3340·2021-09-08 09:45
閱讀 3097·2019-08-30 15:54
閱讀 3348·2019-08-26 13:54
閱讀 1405·2019-08-26 13:26
閱讀 1384·2019-08-26 13:23
閱讀 909·2019-08-23 17:57
閱讀 2178·2019-08-23 17:14