博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于ListView 自定义 Adapter的问题
阅读量:6421 次
发布时间:2019-06-23

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

上周碰到了一个问题,就是我自定义了一个View进行绘图,如果这个图多了以后,一个屏幕显示不下,于是我第一个想到的就是将这个View放在ScrollView中,可是如果放在ScrollView中的话,这个View就画不出来,于是上网查找这个问题,说是在View中添加一个下面的函数:

protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec){

          setMeasuredDimension(800,60);

      }

可是我添加了以后还是画不出来,于是只能换一个思路了。

因为我自定义的View是画一个窄长的矩形来展现Schedule的,于是我就在想用ListView来承载这30个矩形。

怎么将这些矩形放在ListView中的Item中呢?我试着尝试了addView这个方法,可是不管用。于是我就查找了一下资料,详细了解了一下关于ListView的原理。

列表的显示需要三个元素:

1.ListVeiw:  用来展示列表的View。

2.适配器 :用来把数据映射到ListView上

3.数据:    具体的将被映射的字符串,图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,这三种适配器的使用大家可学习下官网上面的使用或者自行百度谷歌,一堆DEMO!!!其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便的把数据库的内容以列表的形式展示出来。

系统要绘制ListView了,他首先用getCount()函数得到要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(这个看实际情况,如果是一个简单的显示则是View,如果是一个自定义的里面包含很多控件的时候它其实是一个ViewGroup),然后再实例化并设置各个组件及其数据内容并显示它。好了,绘制完这一行了。那再绘制下一行,直到绘完为止,

但是这些还不能有效的解决我的问题,于是我又查找了资料,发现我需要自定义一个Adapter将自定义View加载到ListViw中。

而在所有代码都写好了以后,发现自定义View还是无法加载到ListView中,我试着将自定义View改为TextView,发现可以加载,Button也可以。最后我向组长进行了请教,他告诉我说要在自定义的Adapter中加入

protectedvoid onMeasure(int widthMeasureSpec, int heightMeasureSpec){

          setMeasuredDimension(800,60);

      }

我发现加入后,完美的解决了我的问题。

本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/1217501,如需转载请自行联系原作者

你可能感兴趣的文章
阿里云容器宣布开放支持Kubernetes托管服务
查看>>
只在UnitTest和WebHost中的出现的关于LogicalCallContext的严重问题
查看>>
Linux_FTP服务器
查看>>
Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
查看>>
技术研发国产化进程加快 看传感器企业如何展示十八般武艺
查看>>
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>
新手指南:在 Ubuntu 和 Fedora 上安装软件包
查看>>
在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
查看>>
《Python高性能编程》——2.2 Julia集合的介绍
查看>>
大型网站的 HTTPS 实践(二):HTTPS 对性能的影响
查看>>
《Swift 权威指南》——第6章,第6.10节嵌套函数
查看>>
《自己动手做交互系统》——1.3 本章小结
查看>>
Mobile devices bundled with malware?
查看>>
《Node应用程序构建——使用MongoDB和Backbone》一导读
查看>>
《JavaScript面向对象精要》——1.5 访问属性
查看>>
《Python数据可视化编程实战》—— 第 1 章 准备工作环境
查看>>
Android应用性能优化最佳实践.1.1 Android Studio的优势
查看>>
《设计模式解析(第2版•修订版)》—第2章 2.2节什么是UML
查看>>
【健康医疗】4步完成数据分析报表,让医疗数据转化为生产力
查看>>