首先创建一个工具类 ViewUtils
/**
* 为了解决ListView在ScrollView中只能显示一行数据的问题
*
* @param listView
*/
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter ==
null) {
return;
}
int totalHeight =
0;
for (
int i =
0, len = listAdapter.getCount(); i < len; 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设置完适配器后就可以直接使用了
lv
.setadapter(adapter)
ViewUtils
.setListViewHeightBasedOnChildren(lv)
转载请注明原文地址: https://ju.6miu.com/read-9520.html