0

在此处输入图像描述目前我正在使用可见性“GONE”显示列表视图,然后在按钮单击时显示“VISIBLE”,但它在列表视图中仅显示 1 个项目,在滚动视图中显示其他元素(我需要滚动),所以我决定让列表视图首先显示至少 3 个项目和列表视图滚动上的休息元素。如何解决这个问题,提前谢谢。

第一张图片是我的代码,我需要像第二张图片一样

4

1 回答 1

4

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);
    }
于 2013-08-21T08:24:05.223 回答