-
这种方法是把数据全部填充上去,后动态改变listView的高度,
- 填充一部分数据,相当于一页,然后动态添加数据并动态改变ListView的高度
第一种方法:
1.设置起始高度
2.动态改变高度(并设置选择项显示最新记录)
在更多button按钮中更改lsitview的高度大致思路是这样的。细节需要考虑考虑
lp.height=lp.height+100;//此处可以是新添加数据的高度
listview.setLayoutParams(lp);
System.out.println("---------------------");
第二种方法:
1.显示部分数据
2.动态下载一页数据并刷新ListView的adapter
---------------------------------------------------------------------------------------------------------
public class Utility {
public static void setListViewHeightBasedOnChildren(ListView listView) {
//获取ListView对应的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0); //计算子项View 的宽高
totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
//listView.getDividerHeight()获取子项间分隔符占用的高度
//params.height最后得到整个ListView完整显示需要的高度
listView.setLayoutParams(params);
}
}
第三种方法:把ListView换成Linearlayout可以动态的添加数据
(以上三种方法都是把最外层的ScrollView 的大小改变了,并通过滑动ScrollView的滚动条来查看Listview里的内容)
http://www.cnblogs.com/LuoYer/archive/2011/05/07/2039884.html