zoukankan      html  css  js  c++  java
  • 解决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); 
    }                    
  • 相关阅读:
    一个不错的资源共享微盘
    LUA upvalue使用陷阱一例
    安卓破解视频教程合集
    开发Android逆向工具
    手机上编程,编写android apk
    smail修改字符串 汉字
    Android logcat命令详解
    protobuf
    Android Rxjava
    butterknife
  • 原文地址:https://www.cnblogs.com/gdpdroid/p/6075126.html
Copyright © 2011-2022 走看看