真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

如何在android中對listview進行優(yōu)化-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何在android中對listview進行優(yōu)化,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

運河網站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、響應式網站建設等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯(lián)公司。

1、listview在定義的時候寬和高最好固定一下,這樣可以減少listview測量次數(shù),避免每次加載的時候都要去進行測量。

2、分頁加載,這也是優(yōu)化之一,優(yōu)化內存,還有體驗感,有興趣的可以試試大數(shù)據(jù)加載;

3、convertView 就是布局的復用;

4、ViewHolder的使用 目的減少findviewByID的次數(shù);

下面代碼驗證一下3和4。

如何在android中對listview進行優(yōu)化

public View getView(int position, View convertView, ViewGroup parent) {
  Log.e("========>>>>>", "getView-----position" + position);
  convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);
  return convertView;
}

也就是說如果這樣寫的話每次都會進行布局的填充(滑動一下你就會發(fā)現(xiàn)每次都會打印日志),找到相應的布局,如果每次都去填充的話肯定浪費資源,所以我們這樣去寫

public View getView(int position, View convertView, ViewGroup parent) {
  if (convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);
    Log.e("========>>>>>", "getView-----position" + position);
  } else {
  }
  return convertView;
}

如何在android中對listview進行優(yōu)化

你會看到日志始終是這幾個數(shù)據(jù)(如果你頁面顯示5個那個這里的數(shù)據(jù)就應該是六條會比顯示的數(shù)據(jù)多一條)。

ViewHolder

如果不使用viewHolder的話代碼就是這樣的

public View getView(int position, View convertView, ViewGroup parent) {
  if (convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);
  }
  TextView textView = convertView.findViewById(R.id.tv);
   textView.setText(mArrayList.get(position));
  return convertView;
}

很明顯這段代碼每次textview 都得findViewById;你可能會說你可以在if判斷里面findViewById啊,然后在if外邊賦值啊,你可以試試 你會發(fā)現(xiàn)很有意思的事情,上下滑動幾次,你會發(fā)現(xiàn)數(shù)據(jù)就會混亂,并且重復數(shù)據(jù)很多。這樣顯然是不符合我們的要求的;

public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder viewHolder;
  if (convertView == null) {
    convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);
    viewHolder = new ViewHolder();
    viewHolder.mTextView = convertView.findViewById(R.id.tv);
    convertView.setTag(viewHolder);
  } else {
    viewHolder = (ViewHolder) convertView.getTag();
  }
  viewHolder.mTextView.setText(mArrayList.get(position));
  return convertView;
}

public static class ViewHolder {
  private TextView mTextView;
}

關于如何在android中對listview進行優(yōu)化就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


本文標題:如何在android中對listview進行優(yōu)化-創(chuàng)新互聯(lián)
當前鏈接:http://weahome.cn/article/deesps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部