中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ListView的優化

發布時間:2020-07-03 14:38:33 來源:網絡 閱讀:386 作者:小誠誠cc 欄目:開發技術

1、  復用行布局(用已經完全消失的布局對象去替代即將出現的那個布局對象)

在自定義MyAdapter(繼承BaseAdapter)適配器時,需重寫getVIew(int position, View convertView, ViewGroup parent)方法,其中的converView方法會保存那個已經完全消失的布局對象因此我們用convertView來替代即將要創建的inflate

         (判斷convertView為空時創建布局文件,不為空時直接用convertView來替代)

實現代碼:

     View inflate = null;

      if(convertView==null){

                       //得到布局轉換器

                       LayoutInflater layoutInflater= getLayoutInflater();

                       //把布局xml文件轉換成布局對象

                       inflate = layoutInflater.inflate(R.layout.item,null);

    }else{

                       //用已經完全消失的布局對象去替代即將出現的布局對象

                       inflate = convertView;

   }

 

2、去減少控件的查找次數

2.1 單控件——將TextView位置上調

實現代碼:

         Viewinflate = null;

         TextViewtextView = null;

         if(convertView==null){

                   LayoutInflaterlayoutInflater = getLayoutInflater();

                   //把布局xml文件轉換成布局對象

                   inflate= layoutInflater.inflate(R.layout.item, null);

                   textView= (TextView) inflate.findViewById(R.id.textView1);

                   //ViewHolder對象放到inflate包里面

                   inflate.setTag(textView);

         }else{

                   //用已經完全消失的布局對象去替代即將出現的布局對象

                   inflate= convertView;

                   //把對象從inflate的口袋中

                   textView= inflate.getTag();

         }       

    2.2 多控件——使用ViewHolder:創建對象ViewHolder,將TextView封裝到新ViewHolder中(放入的是多控件)

實現代碼:

    ================================================

         classViewHolder{

                   TextViewtextView;

                   TextViewtextView2;

        

         }

         ================================================

    Viewinflate = null;

         ViewHolderholder = null;

         //convertView用來保存那個已經完全消失的布局對象

         if(convertView==null){

                   holder= new ViewHolder();

                   //得到布局轉換器

                   LayoutInflaterlayoutInflater = getLayoutInflater();

                   //把布局xml文件轉換成布局對象

                   inflate= layoutInflater.inflate(R.layout.item, null);

                   holder.textView= (TextView) inflate.findViewById(R.id.textView1);

                   holder.textView2= (TextView) inflate.findViewById(R.id.textView2);

                   //ViewHolder對象放到inflate包里面

                   inflate.setTag(holder);

         }else{

                   //用已經完全消失的布局對象去替代即將出現的布局對象

                   inflate= convertView;

                   //把對象從inflate的口袋中

                   holder= (ViewHolder) inflate.getTag();

         }

 

3、代碼優化

       

       1、創建一個類,類的屬性就是我們所需的數據類型

       2、創建一個容器

       3、把所需的數據都放到容器中

       4、根據position從容器中取出該行所對應的那個對象

       5、設置控件內容


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

敦煌市| 双鸭山市| 阿图什市| 莱阳市| 石门县| 夏邑县| 桓台县| 双鸭山市| 维西| 遂川县| 鹤庆县| 临邑县| 阳原县| 即墨市| 西宁市| 双城市| 云安县| 尼木县| 元朗区| 奉贤区| 盐城市| 马鞍山市| 湖北省| 仙游县| 池州市| 四会市| 寿光市| 阜新| 札达县| 莱州市| 廊坊市| 和政县| 京山县| 宣化县| 华蓥市| 襄樊市| 定兴县| 云浮市| 临漳县| 洪湖市| 九寨沟县|