日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android 復雜布局的ListView優(yōu)化思路

Android 復雜布局的ListView優(yōu)化思路

來源:程序員人生   發(fā)布時間:2015-01-29 08:31:37 閱讀次數(shù):6698次

         項目中用到1個內部復雜布局的listview,每一個item中都有動態(tài)的子item,相當于listview的item中還有l(wèi)istview的樣式。剛開始做的思路是,用1個listview,然后item中加個LinearLayout,然后代碼動態(tài)的生成子item view 添加在其中,希望這樣的表述大家能明白,依照這樣的思路做好以后發(fā)現(xiàn)快速滑動的時候,1卡1頓,實在不能直視,在配置低點的機器上更是不能看。

但是由于趕進度1直沒有優(yōu)化,現(xiàn)在回頭看下,雖然已用了viewHolder但是listview緩沖的機制完全沒有發(fā)揮作用,由于每一個item show的時候都需要removeAll 子item,然后再添加1遍,繪制的時間太長,造成了卡頓。

怎樣解決這個問題尼?

好google在support v7推出了recyclerView,有著更好的緩存優(yōu)化機制,我如獲救星,趕快將listview換成了recyclerView,但是效果不盡人意,沒有我想象中的效力提升,仔細想了想,recycleView只是針對listView的多type情況做了優(yōu)化,而實際需求中還是在item中動態(tài)的生成item,沒有用到recyclerView的優(yōu)勢。

那末自然下面想到的就是干掉動態(tài)生成的Item部份,把數(shù)據拆分成1個1個的listview item。但是又擔心這樣的工作量會不會很大,實際抽象進程中發(fā)現(xiàn)很容易,就把原來1個model數(shù)據拆分成了7個不同類型的model,getView的時候先通過postion 獲得當前model的type,然后返回不同的View item,很簡單的就把原來只有1種item的listview拆分成了1個有7種類型Item的listView。跑起來以后,速度嘩嘩的,感覺就更1個item的1樣。

listView支持多種類型的Item時候還有個坑:繼承BaseAdapter的時候必須復寫下面兩個方法


//滑動ListView的時候,第1個item消失以后,進入屏幕的item類型必須通過<span style="font-family: Arial, Helvetica, sans-serif;">getItemViewType符合類型才會被復用,否則創(chuàng)建新的item類型,固然這些的條件是你必須使用了listView的緩存tag</span>
@Override public int getItemViewType(int position) { return super.getItemViewType(position); } //默許這個方法返回1,所有有幾種類型必須告知listView,listView就會創(chuàng)建幾個不同類型的隊列 @Override public int getViewTypeCount() { return super.getViewTypeCount(); }

這個時候,既然動態(tài)生成子item的機制已被干掉了,我又想到了recyclerView,如果用recyclerView會不會比ListView更優(yōu)尼?說干就干,10分鐘我已完成了替換(思路有了我搬磚的效力還是很快的),跑起來以后,果然唰唰的(其實肉眼已很難分辨出來和listView的區(qū)分了)。但是隨著google走應當不會錯,他自己說的:

The RecyclerView widget is a more advanced and flexible version of ListView. This widget is a container for displaying large data sets that can be scrolled very efficiently by maintaining a limited number of views. Use the RecyclerViewwidget when you have data collections whose elements change at runtime based on user action or network events.


希望能幫助到有類似需求的同學:

ListView中有復雜布局,特別是有動態(tài)生成的布局的子布局的,可以斟酌1下將原來的Item拆分成不同的類型,然后使用recyclerView。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本动漫做毛片一区二区 | www国产亚洲精品久久麻豆 | 国产精品爽爽久久久久久 | aⅴ一级片 | 伊人免费视频 | 色爱区综合 | 99精品欧美一区二区蜜桃免费 | 久久久精 | 韩国三级中文字幕hd久久精品 | 国产精品久久999 | 成人免费网站在线观看 | 久久久久久国产 | 国产伦精品一区二区三区精品视频 | www.精品久久| 国产精品一区二区久久 | 麻豆一区二区 | 国产精品国产亚洲精品看不卡15 | 精品视频在线看 | 热久久综合网 | 性色av一区二区 | 国产精品福利一区 | 亚洲精品视频免费看 | 国产剧情在线观看一区 | 精品国产一区二区三区麻豆小说 | 欧美一级毛片免费网站 | 国产精品九九九 | 深夜成人av| 综合av在线| 国产一区99 | 日韩欧美精品一区二区 | 男女网站在线观看 | 久久国产精品久久久久久久久久 | 免费成人av网站 | 精品国产一区二区三区在线观看 | 中文字幕亚洲成人 | 国产精品午夜视频 | 国产一区不卡视频 | 久久久精品一区二区 | 欧美中文字幕一区二区三区 | 欧美一区二 | 黄色一级视频免费看 |