zoukankan      html  css  js  c++  java
  • 解决android的ListView嵌套在ScrollView中不能被滚动的问题

      使用滚动条容易带来一个后果,就是高度和宽度不受控制了,

      之前就遇到一个已经有ScrollView的页面需要加个列表listView,然后就发现listView只看到前两行数据,下面的看不到,拉滚动条也只是滚动整个页面,而不是listview。

      方法1:让外面的ScollView交出滚动权限,因为listview自身就有滚动条。

      方法2:通过计算装在内容后的list高度,然后设置高度。

    只要在你给你的listView设置适配器后,再重新设置listview的高度,思路是,算出每行的高度,给listview设置高度为:每行的高度*行数+各行间分隔线的高度,即可。

     1 public void setListViewHeightBasedOnChildren(ListView listView) {    
     2         ListAdapter listAdapter = listView.getAdapter();    
     3         if (listAdapter == null) {    
     4             return;    
     5         }    
     6         int totalHeight = 0;    
     7         for (int i = 0; i < listAdapter.getCount(); i++) {    
     8             View listItem = listAdapter.getView(i, null, listView);    
     9             listItem.measure(0, 0);   
    10             totalHeight += listItem.getMeasuredHeight();    
    11         }    
    12         ViewGroup.LayoutParams params = listView.getLayoutParams();    
    13         params.height = totalHeight    
    14                 + (listView.getDividerHeight() * (listAdapter.getCount() + 1));    
    15         listView.setLayoutParams(params);    
    16     }

    传入listview,方法中会改变其参数,设置其高度。0.0

  • 相关阅读:
    春色人间
    如是
    Go -- FileManage 自建云盘
    JavaScript -- 定义二维数组
    mysql 碎片清理
    vue2.0项目中使用Ueditor富文本编辑器示例
    浅谈css中一个元素如何在其父元素居中显示
    CSS -- 文字竖直居中
    memcached与redis区别
    mac -- 安装OpenCV
  • 原文地址:https://www.cnblogs.com/xiaoliu66007/p/4836866.html
Copyright © 2011-2022 走看看