【发布时间】:2017-05-30 23:19:57
【问题描述】:
此代码有效,但问题在于 ListView 中的每个 ListView 项目都是不同的,因此 ListView 的最后一项不显示,因为大高度 ListView 项目获得了这个空间。
代码如下:
public static void setListViewHeightBasedOnChildren(ListView listView,DownloadAdapter adapter,LinearLayout layDownloads) {
ListAdapter mAdapter = adapter;
int totalHeight = 0,h=0;
int listWidth=listView.getMeasuredWidth();
for (int i = 0; i < mAdapter.getCount(); i++) {
View mView = mAdapter.getView(i, null, listView);
mView.measure(
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
h=mView.getMeasuredHeight();
totalHeight += mView.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (mAdapter.getCount() - 1))+h;
listView.setLayoutParams(params);
listView.requestLayout();
}
这是屏幕
请帮助我如何获取每个单元格的列表视图的高度并计算列表视图的高度? 提前谢谢..
【问题讨论】:
-
您可以在滚动视图中使用listview向下滚动并查看所有项目
-
我在滚动视图中的列表视图,但问题是,在我的屏幕上,有 3 个线性布局,每个都有差异列表视图,这就是为什么我必须动态设置每个列表视图高度,所以我使用这种方法来设置高度列表视图。
-
为什么不考虑这个解决方案:让您的项目与显示摘要的默认大小相同,然后单击展开特定项目?
-
不,我不会显示整行列表
标签: android listview android-listview