安卓ListView根據Adapter動態設置高度

1. ListView根據Adapter動態設置高度,使ListView高度正好顯示出所有的Item,不用滾動條

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 += listItem.getMeasuredHeight()+listView.getDividerHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight;
    listView.setLayoutParams(params);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章