成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ViewPager源碼分析(二) Page的復(fù)用

Jensen / 2508人閱讀

摘要:利用完成復(fù)用把中獲得的控件在中復(fù)用省去重復(fù)創(chuàng)建控件一種常見的情況,舉例有五個固定的控件要利用顯示這種情況下,先創(chuàng)建好個控件,并綁定將放入根據(jù)計算出要取中的哪個

一。利用PagerAdapter.instantiateItem,destroyItem 完成復(fù)用

1) 把destroyItem中獲得的View控件,在instantiateItem中復(fù)用
省去重復(fù)創(chuàng)建View控件

    private LinkedList mViewCache = 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顯示
這種情況下,先創(chuàng)建好5個控件,并綁定ViewHolder,將ViewHolder放入List,

    @Override  
    public Object instantiateItem(ViewGroup container, int position) {  
        //根據(jù)position計算出要取List中的哪個ViewHolder
        viewhodler = list.get(index);
        return viewhodler.itemView;
    }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70768.html

相關(guān)文章

  • ViewPager2重大更新,支持offscreenPageLimit

    摘要:前言最近發(fā)布了版本,新增功能,該功能在上并不友好,現(xiàn)在官方將此功能延續(xù)下來,這回是騾子是馬呢趕緊拉出來溜溜閱讀指南內(nèi)容基于版本講解,由于正式版還未發(fā)布,如有功能變動有勞看官指出內(nèi)容重點(diǎn)介紹的特性和預(yù)加載機(jī)制,另外包括的狀態(tài)和的生命周前言 最近ViewPager2發(fā)布了1.0.0-alpha04版本,新增offscreenPageLimit功能,該功能在ViewPager上并不友好,現(xiàn)在官方將...

    番茄西紅柿 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<