您当前的位置: 首页 > 

xiangzhihong8

暂无认证

  • 9浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

解决ListView嵌套ListView遇到的问题

xiangzhihong8 发布时间:2014-06-13 20:45:30 ,浏览量:9

Listview嵌套会造成的问题主要是子listview的高度错误导致内容不能正常显示完,解决这个问题,我个人第一个想法就是重新计算子listview的高度,代码如下:

private void setListViewHeightBasedOnChildren(ListView listView) { 
    if(listView == null) return;

    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的adapter中getview方法调用

RelationAdapter relationAdapter = new RelationAdapter(context, model.relations);cell.xlistView.setAdapter(relationAdapter);setListViewHeightBasedOnChildren(cell.xlistView);

注意事项:

Adapter中getView方法返回的View的必须由LinearLayout组成,因为只有LinearLayout才有measure()方法,如果使用其他的布局如RelativeLayout,在调用listItem.measure(0, 0);时就会抛异常。

效果图:

关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0604s