一、 理解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已到底部和顶部的判断相关推荐

  1. Flutter ListView解决底部或顶部留白问题

    Flutter ListView解决底部或顶部留白问题 在没有设置padding的情况下,上下都有留白 方法一: ListView.builder(padding: EdgeInsets.zero,i ...

  2. 滚动到底部或顶部响应的ScrollView使用

    本文介绍滚动到底部或顶部响应(如加载更多)的ScrollView的使用.网上关于到达底部加载更多的listView示例很多,对于ScrollView却寥寥无几,下面介绍使用自定义的ScrollView ...

  3. [转]ListView滚动到底部自动加载数据

    转自:http://blog.csdn.net/shineflowers/article/details/41744241 在Android中有很多时候会选择用ListView加载数据,有的是分批加载 ...

  4. 滑动到底部或顶部响应的ScrollView实现

    转:http://www.trinea.cn/android/滑动到底部或顶部响应的scrollview/ 两种实现方式的主要不同点在于判断滑动位置的地方,第一种方式在onScrollChanged函 ...

  5. Android仿微信底部菜单栏+顶部菜单栏(附源码)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文要实现仿微信微信底部菜单栏+顶部菜单栏,采用ViewPage来做,每一个page对应一个X ...

  6. ListView自动滚到底部

    2019独角兽企业重金招聘Python工程师标准>>> 聊天App正经常需要用到有当有数据更新时,ListView自动滚到底部的功能,实现很简单,只需要在xml中添加一个属性即可: ...

  7. 用Javascript滚动到页面底部,并能正确判断出页面已到底部的方法

    现在的页面大部分都是通过Js渲染来显示页面的,也就是如果不滚动到页面底部就无法获取整个页面的HTML源码,如果通过CURL等抓取网页那么基本上抓取到都是一堆javascript代码. 所以就有了web ...

  8. 去除listView和recyclerview滑动到顶部和底部边界的阴影

    xml增加: android:overScrollMode="never" 去除ListView滑到顶部和底部时边缘的黑色阴影: android:fadingEdge=" ...

  9. flutter listview 滚动到底部_Flutter系列之Flex布局详解

    PS:长期坚持是一件很难的事. Flutter 是 Google 推出的跨平台 UI 框架,可以快速地在 Android 和 IOS 上构建高质量的应用程序,其主要特点是 Flutter 具有快速开发 ...

最新文章

  1. SDUT OJ 数据结构实验之排序一:一趟快排
  2. php根据修改时间删除指定目录下文件
  3. 数据500%暴涨的神秘公式,顶级增长黑客如何实现用户指数级增长
  4. Hibernate懒加载问题的5种解决方案
  5. 《JavaScript高级程序设计》笔记 - Map与Object的差异与选择
  6. 对服务与工厂感到困惑
  7. SQL每日学习——delete语句
  8. DICOM通讯(ACSE->DIMSE->Worklist)
  9. 咸鱼之王小游戏PC版鼠标模拟器实现
  10. [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
  11. 程序员等于吃青春饭吗?
  12. Making Sense of all these Crazy Web Service Standards
  13. 【ABAP】采购订单行项目 税码 自动默认
  14. 智慧交通大数据可视化,让城市运营车辆可视、可监、可控
  15. Java实现抽奖功能
  16. html5无法播放腾讯视频教程,电脑中无法打开腾讯视频的解决方法
  17. 弹窗开启以及关闭(“closest”用法)
  18. 2020年中华人民共和国县以上行政区划代码
  19. ZYNQ7000 (二十)等精度频率计的原理分析和实例实现
  20. [转]为什么我们做分布式要用redis?

热门文章

  1. 【转】Linux中多线程wait使用注意
  2. 使用VS2013在WIN8.1上运行gaclib的hello world
  3. [C.Sharp] 接口函数还可以声明为private
  4. python发人人状态
  5. Thrift IDL基本语法
  6. java集合(4)-Set集合
  7. php 连接oracle插入多张图片的方法
  8. RequireJS 主要函数
  9. Hive集成HBase详解
  10. HDU——1418抱歉(平面欧拉公式)