android 解决 scrollview嵌套listview listview不执行getview

来源:互联网 发布:德国谷歌域名 编辑:程序博客网 时间:2024/05/18 05:46
public void setListViewHeightBasedOnChildren(ListView listView) {    // 获取ListView对应的Adapter    ListAdapter listAdapter = listView.getAdapter();    if (listAdapter == null) {        return;    }    int totalHeight = 0;    for (int i = 0, len = listAdapter.getCount(); i < len; i++) {        // listAdapter.getCount()返回数据项的数目        View listItem = listAdapter.getView(i, null, listView);        // 计算子项View 的宽高        listItem.measure(0, 0);        // 统计所有子项的总高度        totalHeight += listItem.getMeasuredHeight();    }    ViewGroup.LayoutParams params = listView.getLayoutParams();    params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));    listView.setLayoutParams(params);}
方法二重写listview的这个方法
@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,            MeasureSpec.AT_MOST);    super.onMeasure(widthMeasureSpec, expandSpec);}

0 0