刚刚在项目中发现一个bug,我是用ScrollView 嵌套 ListView的,但是我的数据只能显示一条,开始我还以为是数据有错误,经过排查以后发现是正确的

百度发现 android的架构好像没有考虑这种ListView 嵌套ListView 或者 ScrollView 嵌套 ListView 的架构,所以会出现显示不全的问题。

搜索以后发现一个很好用的工具类,解决了这个问题

package com.linker.utils;import android.view.View;import android.view.ViewGroup;import android.widget.ListAdapter;import android.widget.ListView;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);    }}

在ListView.setAdapter(adapter)之后,只要调用这个方法,就可以把数据显示完全了~

listview.setAdapter(adapter);Utility.setListViewHeightBasedOnChildren(listview);

感谢http://www.cnblogs.com/zhujiabin/p/5807569.html

更多相关文章

  1. 基于Android(安卓)5.1系统的nfc读卡驱动和上层的调试记录,nfc移植
  2. ANDROID导入文件后的本地无法编译生成R.java的问题
  3. Android(安卓)Studio Wear Demo
  4. Android(安卓)ScrollView嵌套WebView
  5. Android(安卓)ApiDemos示例解析(147):Views->Layouts->LinearLay
  6. Android(安卓)工程V4包找不到的问题
  7. android stuido build arr :No toolchains found in the NDK tool
  8. android工程引入第三方jar包,如果发现混淆后无法签名成功,该怎么办
  9. Android之解决在scrollview中嵌套ListView切换界面时scrollview

随机推荐

  1. Android概述
  2. Android入门之helloworld
  3. Android启动流程分析(二) init进程的启动
  4. Android(安卓)Market的 Loading效果
  5. Android(安卓)Zygote
  6. android EditText 全面阐述
  7. Android概述
  8. android framework 图解分享
  9. Android(安卓)HTTP实例 发送请求和接收响
  10. Android(安卓)中service 详解