第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

談ListView優(yōu)化

標(biāo)簽:
Android

ListView的优化问题是安卓面试中的常客,我记得我自己在不少次面试被问到有哪几种方法可以优化ListView的性能

  1. convertView的使用,主要优化加载布局问题

    listivew每次滚动都会调用gitview()方法,所以优化getView是重中之重。

    如果没有缓存就加载布局,如果有缓存就直接用convertView对象。所以这样就不用滑动listview的时候调用getView()方法每次都去加载布局了(如果改布局已经加载)


if(convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(R.layout.feeds_main_item,null);
    holder = new ViewHolder();
    holder.mTextView = (TextView)convertView.findViewById(R.id.main_text);
    holder.mPic = (SimpleDraweeView)convertView.findViewById(R.id.pic);
    convertView.setTag(holder);
}else{
    holder = (ViewHolder)convertView.getTag();
}

2. 内部类ViewHolder的使用

主要优化getView方法中每次回调用findviewByID()方法来获取一次控件的代码,新增加内部类ViewHolder,用于对控件的实力存储进行缓存。

  • convertView为空时,viewHolder会将控件的实例存放在ViewHolder里,然后用setTag方法讲viewHolder对象存储在view里。

  • convertView不为空时,用getTag方法获取viewHolder对象.

class ViewHolder{
    public TextView mTextView;
    public SimpleDraweeView mPic;
}

3. RecycleBin机制

这个是保证ListView有非常多数据滚动时也不会发生oom错误的基础

  1. listview的许多view呈现在Ui上,这样的View对我们来说是可见的,可以称为OnScreen的view(也为ActionView)。

  2. view被上滚移除屏幕,这样的view称为offScreenView(也称为ScrapView)。

  3. 然后ScrapView会被listview删除,而RecycleView会将这部分保存。

  4. 而listview底部需要显示的view会从RecycleBin里面取出一个ScrapView。

    将其作为convertView参数传递过去,从而达到View复用的目的,这样就不必在Adapter的getView方法中执行LayoutInflater.inflate()方法了

 在RecycleBin里面有两个数组,Actionview和ScrapViews.

 private View[] mActiveViews = new View[0];       
 private ArrayList<View>[] mScrapViews;

https://img1.sycdn.imooc.com//5c0739370001f69d11220724.jpg

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消