• 解决ListView在界面只显示一个item


    ListView只显示一条都是scrollview嵌套listView造成的,将listView的高度设置为固定高度之后,三个条目虽然都完全显示。但是这个地方是动态显示的,不能写死。故采用遍历各个子条目的高度,进行相加,然后再算取listview的总高度进行设置的方法。
    只需要在setAdapter之后调用如下方法即可,代码如下:

    public void setListViewHeightBasedOnChildren(ListView listView) { 
        // 获取ListView对应的Adapter 
        ListAdapter listAdapter = listView.getAdapter(); 
        if (listAdapter == null) {
             return; 
        } 
        int totalHeight = 0;
        for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
            // listAdapter.getCount()返回数据项的数目
            View listItem = listAdapter.getView(i, null, listView);
            // 计算子项View 的宽高
            listItem.measure(0, 0); 
            // 统计所有子项的总高度 
            totalHeight += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams(); 
        params.height = totalHeight + (listView.getDividerHeight() *(listAdapter.getCount() - 1)); 
    // listView.getDividerHeight()获取子项间分隔符占用的高度 
    // params.height最后得到整个ListView完整显示需要的高度
     listView.setLayoutParams(params); 
    }                    
  • 相关阅读:
    discuz方法赏析
    rpm安装软件(需管理员权限)
    php.ini修改php上传文件大小限制
    grep 基于关键字搜索
    网络排查的原则
    Sublime Text快捷键
    表格无边框,有内框,在table嵌套时,防止出现重复边线
    文件(图片)强制下载
    网络相关配置文件的位置
    ip,子网掩码,网关,DNS
  • 原文地址:https://www.cnblogs.com/gdpdroid/p/6075126.html
Copyright © 2020-2023  润新知