ListView乱谈之ListView的布局
布局 listview
2023-09-11 14:19:04 时间
本来预备写一篇博客的,写着写着发现要想细细写起来还是要很大篇幅,所以就预计写三篇博客。本篇主要是写ListView的布局,相对来说是本篇篇幅不是很大,其实对于android高手来说ListView的布局他们应该很容易就能知道其原理,不过还是准备把我的心得写出来,有不足和错误之处欢迎批评吐槽,批评吐槽过后再给指点一二。
ListView的布局就像在我之前实现的简单的横向ListView那样(详情点击此处),核心方法就是layout(left,top,right,bottom)方法的调用,该方法参数可以用如下图来说明:
其实通过这个图不难想象出让Adapter对象里getView方法所返回的View一个个竖直排列的思想很简单:在ListView高度允许的范围内,循环遍历Adapter中的ItemView,对该View进行测量并通过layout方法布局到ListView中去;然后取Adapter中的下一个position的View(在此称之为nextView),通过相应的位置计算,让nextView布局在上一个View的下面,到此完成布局的过程。上面所说的相应的位置计算,主要是改变每个ItemView的layout方法中第二个参数(top)的值。这个值每次递增的量(或者说下一个Itemview的top值)为:preItemView.getBottom() + mDividerHeight(该变量为ListView中ItemView之间的间隔)
相关文章
- QT:设置布局边缘
- Win10系列:UWP界面布局基础5
- 《Ext JS 4 First Look》翻译之三:布局
- css调整图片位置布局
- EditText获取焦点显示输入法时布局自动改变的解决方案
- 纯CSS实现瀑布流布局
- Qt编写安防视频监控系统12-异形布局
- 腾讯云开发低代码(lowcode)实现行列布局中的垂直居中效果
- Android AbsoluteLayout 绝对布局
- android8.0 Launcher源码 (13) --- Launcher 启动流程之LauncherModel的布局
- 【Linux 内核 内存管理】Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )
- jQuery EasyUI 布局 - 添加自动播放标签页(Tabs)
- ScatterLayout 布局 kivy