zoukankan      html  css  js  c++  java
  • scrollview中套listView的问题,记录一下。

    开发一个订单详情界面,详情界面上面要显示收货地址、订单总金额等,中间部分要一个listView,下面还有一些东西

    但是一个界面显示不全,肯定要scrollview,然后发现listView竟然只显示第一个,查了一下问题大概就是android支持这么搞,反正解决办法网上是一大堆,没有仔细研究。但是这个办法走了一个捷径。反正能满足我的需求了。

    大概布局就是 

    <LinearLayout>

    <ListView>
    </ListView>


    </LinearLayout>

    然后在setAdapter后调用下面这个办法

    大概就是统计item相加的高度,动态设置这个线性布局的高度。记录一下

    public class Utility {

    public static void setListViewHeightBasedOnChildren(ListView listView) {

    //获取ListView对应的Adapter

    ListAdapter listAdapter = listView.getAdapter(); 

    if (listAdapter == null) {

    // pre-condition

    return;

    }

    int totalHeight = 0;

    for (int i = 0, len = listAdapter.getCount(); i < len; i++) { //listAdapter.getCount()返回数据项的数目

    View listItem = listAdapter.getView(i, null, listView);

    listItem.measure(0, 0); //计算子项View 的宽高

    totalHeight += listItem.getMeasuredHeight(); //统计所有子项的总高度

    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();

    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));

    //listView.getDividerHeight()获取子项间分隔符占用的高度

    //params.height最后得到整个ListView完整显示需要的高度

    listView.setLayoutParams(params);

    }

    }

  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/Jerseyblog/p/4122728.html
Copyright © 2011-2022 走看看