日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ListView的优化

發布時間:2024/8/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ListView的优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ListView的優化

  • ListView的介紹
  • 一、ListView的常用屬性
  • 二、三種簡化和優化的方法
    • 1.每一次都重新定義一個View載入布局,然后加載數據
    • 2.convertView不為空重新使用convertView
    • 3.定義一個ViewHolder,將convetView的tag設置為ViewHolder,不為空時重新使用
    • 參考https://blog.csdn.net/weixin_33834075/article/details/89936285代碼


ListView的介紹

在android開發中Listview是一個很重要的組件,它以列表的形式根據數據的長自適應展示具體內容,用戶可以自由的定義listview每一列的布局,但當listview有大量的數據需要加載的時候,會占據大量內存,影響性能,這時候就需要按需填充并重新使用view來減少對象的創建。
它以列表的形式展示數據內容,并且能夠根據列表的高度自適應屏幕顯示


一、ListView的常用屬性

android:listSelector:當條目被點擊后,改變條目的背景顏色
android:divider:設置分割線的顏色
android:dividerHeight:設置分割線的高度
android:scrollbars:是否顯示滾動調
android:fadingEdge:去掉上邊和下邊的黑色陰影

二、三種簡化和優化的方法

1.每一次都重新定義一個View載入布局,然后加載數據

代碼如下(示例):

public View getView(int position, View convertView, ViewGroup parent) {View item = mInflater.inflate(R.layout.list_item_icon_text, null);((TextView) item.findViewById(R.id.text)).setText(DATA[position]);((ImageView) item.findViewById(R.id.icon)).setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);return item; }

2.convertView不為空重新使用convertView

代碼如下(示例):

public View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = mInflater.inflate(R.layout.item, parent, false);}((TextView) convertView.findViewById(R.id.text)).setText(DATA[position]);((ImageView) convertView.findViewById(R.id.icon)).setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);return convertView;}

3.定義一個ViewHolder,將convetView的tag設置為ViewHolder,不為空時重新使用

代碼如下(示例):

static class ViewHolder { TextView text; ImageView icon; } public View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (convertView == null) {convertView = mInflater.inflate(R.layout.list_item_icon_text,parent, false);holder = new ViewHolder();holder.text = (TextView) convertView.findViewById(R.id.text);holder.icon = (ImageView) convertView.findViewById(R.id.icon);convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(DATA[position]); holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2); return convertView;} }

參考https://blog.csdn.net/weixin_33834075/article/details/89936285代碼

總結

以上是生活随笔為你收集整理的ListView的优化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。