美文网首页
ScrollView嵌套ListView只显示一行

ScrollView嵌套ListView只显示一行

作者: smile夕颜 | 来源:发表于2019-01-15 11:14 被阅读62次

    一 问题描述

          在布局中有时候需要ScrollView嵌套ListView,但发现listview只显示了一行数据,其他的需要滑动。

    二 解决方案

    1.把listView在布局文件中设置一个固定的高度,这样能显示多个item,但是有kennel还是显示不全(如果已知item高度和固定个数 可以用这种方式设置高度 item高*个数)。

    2.因为item未知个数 需要listview设置数据后,动态计算list view的高度,并设置。以下为设置的代码。(复制以下代码,设置数据后调用该方法)

    /**

    * 动态设置ListView的高度

    * @param listView

    */

    public static void setListViewHeightBasedOnChildren(ListView listView) {

    if(listView ==null)return;

        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);

    }

    相关文章

      网友评论

          本文标题:ScrollView嵌套ListView只显示一行

          本文链接:https://www.haomeiwen.com/subject/elvedqtx.html