目前我正在使用可见性“GONE”显示列表视图,然后在按钮单击时显示“VISIBLE”,但它在列表视图中仅显示 1 个项目,在滚动视图中显示其他元素(我需要滚动),所以我决定让列表视图首先显示至少 3 个项目和列表视图滚动上的休息元素。如何解决这个问题,提前谢谢。
第一张图片是我的代码,我需要像第二张图片一样
ScrollView 中的 ListView 通常是个坏主意。
相反,您应该使用 LinearLayout 并在其中膨胀您的 ListItems。做起来也不难。只需使用 for 循环或其他东西。如果您必须使用 ListView,您可以在 ListView 填充后调用以下方法。
(将 listAdapter.getCount() 更改为您要显示的单元格数
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);
}