您的位置:首页 > 产品设计 > UI/UE

根据Item数动态设定ListView高度

2015-10-10 18:20 423 查看
//此方法在setAdapter之后调用

public static void setListViewHeightBasedOnChildren(ListView listView) {

    ListAdapter listAdapter = listView.getAdapter();

    if (listAdapter == null) {

     return;

    }

    int totalHeight = 0;

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

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

     listItem.measure(0, 0);

     totalHeight += listItem.getMeasuredHeight();

    }

   

    ViewGroup.LayoutParams params = listView.getLayoutParams();

    

    params.height = totalHeight

      + (listView.getDividerHeight() * (listAdapter.getCount() - 1));

    listView.setLayoutParams(params);

 }

但是要注意的是,子ListView的每个Item必须是LinearLayout,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android listview UI