Android -- ScrollView和ListView冲突问题


//处理ScrollView和ListView冲突问题,计算ListView的Item高度
  public 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));
      ((MarginLayoutParams) params).setMargins(10, 10, 10, 10);
      listView.setLayoutParams(params);
  }
相关文章
相关标签/搜索