文档章节

在ScrollView中嵌套ListView时,ListView只能显示一行多一点

开源中国首席体验师
 开源中国首席体验师
发布于 2013/07/17 13:07
字数 185
阅读 855
收藏 3
在ScrollView中嵌套ListView时,ListView只能显示一行多一点,如图:

解决方法来自
来自StackOverFlow
http://stackoverflow.com/questio ... ing/3495908#3495908

经过验证,简单有效,在listview.setAdapter()之后调用Utility.setListViewHeightBasedOnChildren(listview)就Ok了。
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);
}
}

本文转载自:http://stackoverflow.com/questio ... ing/3495908#3495908

开源中国首席体验师
粉丝 0
博文 10
码字总数 183
作品 0
珠海
程序员
私信 提问
ScrollView嵌套ListView为什么只显示一行?解决方法以及原理

1.问题复现路径。     在使用ScrollView中如果嵌套ListView,则ListView只会显示一行。 2.解决办法,自定义ListView,并重写onMeasure()方法。 3原理解析。 3.1.造成原因     查看L...

键盘走过的日子
2018/01/14
0
0
从源码角度分析SrcollView嵌套ListView显示不全的问题

从源码角度分析SrcollView嵌套ListView显示不全的问题 Sunxin's Bolg Sunxin's Github 问题描述 在之前开发的时候会碰到列表滑动布局中ScrollView嵌套ListView的情况,当嵌套了之后发现ListV...

sun_____xin
2017/09/02
0
0
ScrollView嵌套ListView的问题同样适用于gridview

以下文章转自@安卓泡面 在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全。我试过很多种方法,它们各有利弊。 在这里我将会从使用ScrollView嵌套L...

Remix_jx
2015/01/18
0
0
关于ListView适配器getView()多次执行

在使用ListView显示数据的时候,定义一个适配器,然后重写getView()方法,这时通过LOG日志分析会发现getView()方法会被执行多次。通过上网查询资料得出 原因在于View在Draw的时候分为两个...

王先森oO
2018/08/01
0
0
ScrollView中嵌套ListView主要代码

很多时间我们在scorllview中嵌入listview的时候,都只能看到listview显示一行数据,而我们的要求是显示多行,即我们数据的行数, 当ListView的高度设定一定的值时,ListView同样地会显示对应...

OSC_RjDivW
2016/11/23
96
0

没有更多内容

加载失败,请刷新页面

加载更多

php 遇到 No input file specified的解决方法

(一)IIS Noinput file specified 方法一:改PHP.ini中的doc_root行,打开ini文件注释掉此行,然后重启IIS 方法二: 请修改php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后面的1...

chenhongjiang
今天
5
0
MySQL 基础

一、常用命令 在命令行中,配置好环境变量后,通过cmd可以直接进入mysql命令行模式,同时列举几种常用命令 # 进入mysql数据库,密码可以先不写,打完-p后再输入,防止被别人看到mysql -u账...

华山猛男
今天
6
0
简单的博客系统(四)Django请求HTML页面视图信息--基于函数的视图

1. 编写用于查询数据的功能函数 应用目录 下的 views.py 文件通常用于保存响应各种请求的函数或类 from django.shortcuts import renderfrom .models import BlogArticles# Create your ...

ZeroBit
今天
5
0
用脚本将本地照片库批量导入到Day One中

因为目前iCloud 空间已经不足,其中95%都是照片,之前入手了DayOne,且空间没有限制,订阅费一年也不少,再加上DayOne作为一款日记App 也比较有名,功能方面最大的就是地理视图与照片视图,尤...

在山的那边
昨天
19
0
jupyter部署安装

python373 -m ipykernel install --name python373 ipython kernelspec list sc create myjupyterservice binpath="D:\apply\Python373\Scripts\jupyter-notebook --config=V:/my_work/jupyt......

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部