位置: 编程技术 - 正文
推荐整理分享ScrollView嵌套ListView的解决方案(scrollview嵌套flatlist),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:scrollview嵌套webview,scrollview嵌套collectionview,scrollview嵌套listview滑动冲突,scrollview嵌套viewpager不显示,scrollview嵌套webview滑动冲突,scrollview嵌套flatlist,scrollview嵌套scrollview,scrollview嵌套listview滑动冲突,内容如对您有帮助,希望把文章链接给更多的朋友!
在开发的过程当中,由于手机屏幕的大小的限制,我们经常需要使用滑动的方式,来显示更多的内容。在最近的工作中,遇见一个需求,需要将ListView嵌套到ScrollView中显示.而默认情况下,ScrollView中嵌套了ListView后,ListView的显示区域只能刚刚好看到一条数据,另外如果ScrollView中还有其它的控件,即使是放在ListView控件的顶部,显示的时候默认还是会显示在ListView控件所在的位置上.而处理ListView控件顶部的其它控件将被隐藏.
方案1:
于是乎有了如下布局:
运行程序,如下结果,无论你如何调整layout_width,layout_height属性,ListView列表只显示一列!在查阅的各种文档和资料后,发现在ScrollView中嵌套ListView空间,无法正确的计算ListView的大小,故可以通过代码,根据当前的ListView的列表项计算列表的尺寸。实现代码如下:
运行结果,OK问题搞定.
注意:
上面这个方法就是设定ListView的高度了,在为ListView设置了Adapter之后使用,就可以解决问题了。但是这个方法有个两个细节需要注意: 一是Adapter中getView方法返回的View的必须由LinearLayout组成,因为只有LinearLayout才有measure()方法,如果使用其他的布局如RelativeLayout,在调用listItem.measure(0, 0);时就会抛异常,因为除LinearLayout外的其他布局的这个方法就是直接抛异常的,没理由…。我最初使用的就是这个方法,但是因为子控件的顶层布局是RelativeLayout,所以一直报错,不得不放弃这个方法。 二是需要手动把ScrollView滚动至最顶端,因为使用这个方法的话,默认在ScrollView顶端的项是ListView,具体原因不了解,求大神解答…可以在Activity中设置:
方案2:自定义可适应ScrollView的ListView上面三个构造方法完全不用动,只要重写onMeasure方法,在xml布局中和Activty中使用的ListView改成这个自定义ListView就行了。这个方法和方法1有一个同样的毛病,就是默认显示的首项是ListView,需要手动把ScrollView滚动至最顶端。搭建一个应用程序框架-做点什么 以前只做过模块功能的开发,在开源项目或者别人搭建的项目框架下敲码。突然让我来搭建一个app的框架,竟然不知道如何下手了!郁闷,好吧先从网
Android 自定义RadioGroup布局 前段时间项目中需要这种效果,自定义RadioGroup布局,但是前提是要找到RadioButton。我搜集各种资料,尝试各种测试。终于有了自定义RadioGroup布局。自定
android(5) 等待窗口 一.等待窗口实现:记录一下,有时候我们下载数据的时候为了提高用户的体验,加一个等待窗口还是有必要的,有两种等待窗口:第一种旋转的ProgressBar
友情链接: 武汉网站建设