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); 
    }                    
  • 相关阅读:
    linq TO sqlite
    sqliteHelp类似sqlHelp
    Coolite Toolkit 学习笔记(1)
    多线程和委托简单例子
    datatableToObject 方法
    Linq To lucen.Net
    读取TXT文档示例
    VS2008快捷方式
    富文本编辑器嵌入指定html代码
    代码行数的统计
  • 原文地址:https://www.cnblogs.com/gdpdroid/p/6075126.html
Copyright © 2011-2022 走看看