博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于ScrollView嵌套ListView
阅读量:4978 次
发布时间:2019-06-12

本文共 1835 字,大约阅读时间需要 6 分钟。

今天工作中需要这个,以前也写过这样的需求但是没有记录下来,今天趁机记录一下。也希望对大家工作有帮助!谢谢。

来电与主题无关的,要实现ScrollView滚动条的隐藏,有两种方法,

一种是在XML的ScrollView布局中加入属性android:scrollbars="none"

另一种则是在代码中获取ScrollView后进行scroll.setVerticalScrollBarEnabled(false);

 

下面来说下ScrollView如何嵌套ListView

按常理,ScrollView套ListView会存在两个问题:

1.里面的listView高度无法算出来,通常只能显示listview的其中一行
2.listview不能滚动

 

为什么ScrollView嵌套ListView会出现问题,只显示一个item的问题。

这个是计算ListView高度产生的问题。

我们可以这样解决。

第一给ListView一个固定的高度。

例如设置android:layout_height="200dip",那么可以解决,可能会影响美观。

 

第二给ScrollView设置属性:android:fillViewport="true"

测试的时候发现,如果ListView加载的数据不多的话,确实可以解决,但是当ListView加载的数据较多的时候,仍旧无法显示完全,并且这个时候ListView自身也无法滚动了。

 

第三,我也是按照这个方法的,用代码重新测量下ListView的高度。

1    private void initLoad() { 2         ListLoadAdapter adapter = new ListLoadAdapter(); 3         lvLoan.setAdapter(adapter); 4         setListViewHeightBasedOnChildren(lvLoan); 5     } 6     public void setListViewHeightBasedOnChildren(ListView listView) { 7         // 获取ListView对应的Adapter 8         ListAdapter listAdapter = listView.getAdapter(); 9         if (listAdapter == null) {10             return;11         }12 13         int totalHeight = 0;14         for (int i = 0, len = listAdapter.getCount(); i < len; i++) {15             // listAdapter.getCount()返回数据项的数目16             View listItem = listAdapter.getView(i, null, listView);17             // 计算子项View 的宽高18             listItem.measure(0, 0);19             // 统计所有子项的总高度20             totalHeight += listItem.getMeasuredHeight();21         }22 23         ViewGroup.LayoutParams params = listView.getLayoutParams();24         params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));25         // listView.getDividerHeight()获取子项间分隔符占用的高度26         // params.height最后得到整个ListView完整显示需要的高度27         listView.setLayoutParams(params);28     }

 

转载于:https://www.cnblogs.com/itpepe/p/4919848.html

你可能感兴趣的文章
2012.05.16
查看>>
前端自动化测试之UI RECORDER(二、PC录制)
查看>>
Linq基本查询操作--帅选
查看>>
hdu 3496 二维费用的01背包
查看>>
poj 3159 差分约束+spfa
查看>>
Linux(Ubuntu)使用日记------tenserflow安装(pip安装法)
查看>>
《Linux权威指南》阅读笔记(2)
查看>>
高精度减法
查看>>
index unusable
查看>>
HDU 6153 A Secret
查看>>
ubuntu 服务优化。
查看>>
sql优化相关
查看>>
配置.NET程序中最大HTTP并发连接数(默认为2)
查看>>
Matlab2014的下载和安装激活过程
查看>>
【转】Android游戏开发:如何实现爆炸效果
查看>>
"SOAP WebService " 和 "RESTful WebService" 的定义分别是什么???
查看>>
linux三大文件处理工具(grep/sed/awk)
查看>>
dubbo源码分析 之 服务本地暴露
查看>>
python 连接presto
查看>>
git dev 分支merge到master
查看>>