ListView已到底部和顶部的判断
一、 理解Android坐标,位置概念
坐标系在二维视图中通过X轴和Y轴两个数字为组合表示某个点的绝对坐标。 例如(30, 100) 通常表示X轴30, Y轴100交叉的一个点。 在Android中以左上角为原点(0,0),水平方向是X轴,从左到右,垂直方向是Y轴,从上到下,可以把left相当于X轴值, top相当于Y轴值, 通过这两个值Android系统可以知道视图的绘制起点,在通过Wdith 和 Height 可以得到视图上下左右具体值,就可以在屏幕上绝对位置绘制视图。right 与 bottom计算如下:
right = left + width;
bottom = top + height;
二、 View中相应API
view.getLeft()表示的是view左侧以其父View的左上角为原点的水平坐标位置 ;
view.getRight()表示的view右侧以其父View的左上角为原点的水平坐标位置 ;
view.getTop()表示的是view顶部以父View的左上角为原点的垂直坐标位置 ;
view.getBottom()表示的是view底部以父View的左上角为原点的垂直坐标位置 ;
view.getWidth()表示view宽度;
view.getHeight()表示view高度 ;
1>ListView已到顶部的判断
<span style="font-size:18px;"> public boolean isListViewReachTopEdge(final ListView listView) {boolean result=false;if(listView.getFirstVisiblePosition()==0){final View topChildView = listView.getChildAt(0);result=topChildView.getTop()==0;}return result ;}</span>
注:view的getTop()表示的是该View的顶部到父控件的左上角的垂直距离。
当ListView的第一个child View的getTop()为零时,就表示ListView已经滚动到顶部了或已经在顶部不能在向上滑动了
2>ListView已到底部的判断
<span style="font-size:18px;">public boolean isListViewReachBottomEdge(final ListView listView) {boolean result=false;if (listView.getLastVisiblePosition() == (listView.getCount() - 1)) {final View bottomChildView = listView.getChildAt(listView.getLastVisiblePosition() - listView.getFirstVisiblePosition());result= (listView.getHeight()>=bottomChildView.getBottom());};return result;}</span>
注:view的getBottom()表示的是该View底部到父控件的左上角的垂直距离
当ListView的最后一个child View的getBottom()小于等于ListView的getHeight()时,就表示ListView滚动到底部或已经在底部了,不能再向下滑动了。
关于View的getLeft, getRight, getTop, getBottom更多内容请参考点击打开链接
ListView已到底部和顶部的判断相关推荐
- Flutter ListView解决底部或顶部留白问题
Flutter ListView解决底部或顶部留白问题 在没有设置padding的情况下,上下都有留白 方法一: ListView.builder(padding: EdgeInsets.zero,i ...
- 滚动到底部或顶部响应的ScrollView使用
本文介绍滚动到底部或顶部响应(如加载更多)的ScrollView的使用.网上关于到达底部加载更多的listView示例很多,对于ScrollView却寥寥无几,下面介绍使用自定义的ScrollView ...
- [转]ListView滚动到底部自动加载数据
转自:http://blog.csdn.net/shineflowers/article/details/41744241 在Android中有很多时候会选择用ListView加载数据,有的是分批加载 ...
- 滑动到底部或顶部响应的ScrollView实现
转:http://www.trinea.cn/android/滑动到底部或顶部响应的scrollview/ 两种实现方式的主要不同点在于判断滑动位置的地方,第一种方式在onScrollChanged函 ...
- Android仿微信底部菜单栏+顶部菜单栏(附源码)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文要实现仿微信微信底部菜单栏+顶部菜单栏,采用ViewPage来做,每一个page对应一个X ...
- ListView自动滚到底部
2019独角兽企业重金招聘Python工程师标准>>> 聊天App正经常需要用到有当有数据更新时,ListView自动滚到底部的功能,实现很简单,只需要在xml中添加一个属性即可: ...
- 用Javascript滚动到页面底部,并能正确判断出页面已到底部的方法
现在的页面大部分都是通过Js渲染来显示页面的,也就是如果不滚动到页面底部就无法获取整个页面的HTML源码,如果通过CURL等抓取网页那么基本上抓取到都是一堆javascript代码. 所以就有了web ...
- 去除listView和recyclerview滑动到顶部和底部边界的阴影
xml增加: android:overScrollMode="never" 去除ListView滑到顶部和底部时边缘的黑色阴影: android:fadingEdge=" ...
- flutter listview 滚动到底部_Flutter系列之Flex布局详解
PS:长期坚持是一件很难的事. Flutter 是 Google 推出的跨平台 UI 框架,可以快速地在 Android 和 IOS 上构建高质量的应用程序,其主要特点是 Flutter 具有快速开发 ...
最新文章
- SDUT OJ 数据结构实验之排序一:一趟快排
- php根据修改时间删除指定目录下文件
- 数据500%暴涨的神秘公式,顶级增长黑客如何实现用户指数级增长
- Hibernate懒加载问题的5种解决方案
- 《JavaScript高级程序设计》笔记 - Map与Object的差异与选择
- 对服务与工厂感到困惑
- SQL每日学习——delete语句
- DICOM通讯(ACSE->DIMSE->Worklist)
- 咸鱼之王小游戏PC版鼠标模拟器实现
- [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
- 程序员等于吃青春饭吗?
- Making Sense of all these Crazy Web Service Standards
- 【ABAP】采购订单行项目 税码 自动默认
- 智慧交通大数据可视化,让城市运营车辆可视、可监、可控
- Java实现抽奖功能
- html5无法播放腾讯视频教程,电脑中无法打开腾讯视频的解决方法
- 弹窗开启以及关闭(“closest”用法)
- 2020年中华人民共和国县以上行政区划代码
- ZYNQ7000 (二十)等精度频率计的原理分析和实例实现
- [转]为什么我们做分布式要用redis?