[Android实例] Scroview 嵌套ListView显示完整解决方案

在ScrollView中嵌套ListView时,ListView只能显示一行多一点.

经过验证,简单有效,在listview.setAdapter()之后调用Scroview_listv_util.setListViewHeightBasedOnChildren(listview)就Ok 了。

public class Scroview_listv_util {

public static void setListViewHeightBasedOnChildren(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null) {
   // pre-condition
   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的内容要拖动到listview的上面才能看到listview上面的内容,为了解决这个问题就比较麻烦一些,直接上代码了,自己去下载 下载地址:http://download.csdn.net/detail/dazaoweilai/6482595

你可能感兴趣的:(android)