Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android動態改變ListView的高度

Android動態改變ListView的高度

編輯:關於Android編程

定義一個函數將dp轉換為像素

public int Dp2Px(Context context, float dp) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dp * scale + 0.5f);

}


定義函數動態控制listView的高度

public void setListViewHeightBasedOnChildren(ListView listView) {

//獲取listview的適配器

ListAdapter listAdapter = listView.getAdapter(); //item的高度

if (listAdapter == null) {

return;

}

int totalHeight = 0;

for (int i = 0; i < listAdapter.getCount(); i++) {

View listItem = mAdapter.getView(i, null, listView);

listItem.measure(0, 0); //計算子項View 的寬高 //統計所有子項的總高度

totalHeight += Dp2Px(getApplicationContext(),listItem.getMeasuredHeight())+listView.getDividerHeight();

}

ViewGroup.LayoutParams params = listView.getLayoutParams();

params.height = totalHeight; listView.setLayoutParams(params);

}

在每次listView的adapter發生變化後,要調用setListViewHeightBasedOnChildren(listView)更新界面

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved