您的位置:首页 > 其它

ListView套上ScrollView; ListView显示不全; ListView只显示一条 不能全局滑动问题

2016-11-03 16:36 501 查看
@Override
protected void initData() {
Map<String, String> a = new HashMap<>();
a = DataUtils.addArrayForPHP(a, stockIdlist, "stockInId");
RequestManager.request(API.SENG_CHENG_DING_DAN_XIN_XI, CreateOrderInfo.class, a, new RequestManager.OnResponseListener<CreateOrderInfo>() {
@Override
public void onResponse(CreateOrderInfo info) {

storageList = info.getInfo().getStorageList();
lvPackage.setAdapter(new OrderAdapter(lvPackage, storageList));
setListViewHeightBasedOnChildren(lvPackage);//调用这个方法
}
});

}






public void setListViewHeightBasedOnChildren(ListView lvPackage) {
// 获取ListView对应的Adapter
ListAdapter listAdapter = lvPackage.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, lvPackage);
// 计算子项View 的宽高
listItem.measure(0, 0);
// 统计所有子项的总高度
totalHeight += listItem.getMeasuredHeight();
}

ViewGroup.LayoutParams params = lvPackage.getLayoutParams();
params.height = totalHeight + (lvPackage.getDividerHeight() * (listAdapter.getCount() - 1));
// listView.getDividerHeight()获取子项间分隔符占用的高度
// params.height最后得到整个ListView完整显示需要的高度
lvPackage.setLayoutParams(params);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐