Android Adapter里面嵌套ListView实例详解

前言:
可嵌套~但是显示需要特殊处理下~以下是处理方法
前几天因为项目的需要,要在一个ListView中放入另一个ListView,也即在一个ListView的每个ListItem中放入另外一个ListView。但刚开始的时候,会发现放入的小ListView会显示不完全,它的高度始终有问题。上网查了下,发现别人也有遇到这样的问题,而大多数人都不推荐这样的设计,因为默认情况下Android是禁止在ScrollView中放入另外的ScrollView的,它的高度是无法计算的。
又搜索了一下,发现有StackOverflow上的牛人已经解决了这个问题,经过试验发现是可以解决问题的,它的思路就是在设置完ListView的Adapter后,根据ListView的子项目重新计算ListView的高度,然后把高度再作为LayoutParams设置给ListView,这样它的高度就正确了,以下是源码:
public class Utility {
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
}
只要在设置ListView的Adapter后调用此静态方法即可让ListView正确的显示在其父ListView的ListItem中。但是要注意的是,子ListView的每个Item必须是LinearLayout,不能是其他的,因为其他的Layout(如RelativeLayout)没有重写onMeasure(),所以会在onMeasure()时抛出异常。
在ScrollView中嵌套ListView(或者ScrollView)的另外一个问题就是,子ScrollView中无法滑动的(如果它没有显示完全的话),因为滑动事件会被父ScrollView吃掉,如果想要让子ScrollView也可以滑动,只能强行截取滑动事件,有牛人在论坛中发过代码说可以。虽然我没有亲自试过,但估计是可行的。
虽然在ScrollView中显示ScrollView在技术上的难题可以攻破,但是这样的设计却是非常差的用户体验因为用户会不容易看到和操作子ScrollView中的内容。比如好的设计是,父ListView的每个Item只显示概括性的描述,然后点击其Item会进入另外一个页面来详细描述和展示以及对这个Item的操作。
以上就是对Android Adapter嵌套Listview 的实例详解,本站关于Android 开发的文章还有很多,希望大家搜索查阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# Adapter嵌套ListView
# Adapter
# listview的嵌套
# Android自定义Adapter的ListView的思路及代码
# android开发中ListView与Adapter使用要点介绍
# Android listview与adapter详解及实例代码
# Android开发中ListView自定义adapter的封装
# Android ListView适配器(Adapter)优化方法详解
# Android ListView自定义Adapter实现仿QQ界面
# Android ListView和Adapter数据适配器的简单介绍
# Android UI:ListView - SimpleAdapter实例详解
# Android开发实现ListView和adapter配合显示图片和文字列表功能示例
# 其他的
# 另外一个
# 的是
# 也有
# 都不
# 却是
# 会在
# 这个问题
# 要在
# 要注意
# 希望能
# 不容易
# 希望大家
# 只显示
# 解决问题
# 重写
# 刚开始
# 一个问题
# 在一
# 前几天
相关文章:
微信小程序 input输入框控件详解及实例(多种示例)
如何破解联通资金短缺导致的基站建设难题?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
如何确认建站备案号应放置的具体位置?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
python的本地网站制作,如何创建本地站点?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何在云虚拟主机上快速搭建个人网站?
如何用5美元大硬盘VPS安全高效搭建个人网站?
制作销售网站教学视频,销售网站有哪些?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
无锡营销型网站制作公司,无锡网选车牌流程?
制作门户网站的参考文献在哪,小说网站怎么建立?
网站制作报价单模板图片,小松挖机官方网站报价?
建站之星Pro快速搭建教程:模板选择与功能配置指南
微信推文制作网站有哪些,怎么做微信推文,急?
如何在阿里云虚拟主机上快速搭建个人网站?
如何快速搭建虚拟主机网站?新手必看指南
建站之家VIP精选网站模板与SEO优化教程整合指南
哈尔滨网站建设策划,哈尔滨电工证查询网站?
网站制作说明怎么写,简述网页设计的流程并说明原因?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
建站主机选哪家性价比最高?
名字制作网站免费,所有小说网站的名字?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何快速登录WAP自助建站平台?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
公司网站设计制作厂家,怎么创建自己的一个网站?
建站之星安装模板失败:服务器环境不兼容?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
建站之星代理平台如何选择最佳方案?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何通过虚拟主机空间快速建站?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星安装后如何配置SEO及设计样式?
如何解决VPS建站LNMP环境配置常见问题?
西安专业网站制作公司有哪些,陕西省建行官方网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在IIS服务器上快速部署高效网站?
如何在搬瓦工VPS快速搭建网站?
建站之星备案流程有哪些注意事项?
如何注册花生壳免费域名并搭建个人网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
江苏网站制作公司有哪些,江苏书法考级官方网站?
建站之星客服服务时间及联系方式如何?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何通过免费商城建站系统源码自定义网站主题与功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。