判断ListView的第一个/最后一个item是否完全显示

2023-11-14


判断最后一项,亲测可用,当然网上还有很多其他的方法,不同场景的方式可能不一样

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    if(view.getId() == R.id.wait_For_Choice){
        float currentHeight = view.getHeight();
        float currentHeight1 = view.getScrollY();
        UtilsLog.e("currentHeight " + currentHeight);
        UtilsLog.e("currentHeight1 " + currentHeight1);
        if ((totalItemCount > 0)  && (view.getLastVisiblePosition() == totalItemCount - 1)) {
            UtilsLog.d("view.getBottom() " + view.getBottom());
            UtilsLog.d("view.getChildCount() " + view.getChildCount());
            UtilsLog.d("view.getChildAt(view.getChildCount()-1).getBottom() " + view.getChildAt(view.getChildCount() - 1).getBottom());
            if (currentHeight == view.getChildAt(view.getChildCount()-1).getBottom()) {
                UtilsLog.e("end");
            }
        }
    }

}

查看坐标getLeft, getRight, getTop, getBottom解惑




下面代码是摘自网上的 没测试过,先留着 http://www.lai18.com/content/1506534.html

如果ListView加了padding属性的话,判断是否完全显示的时候就不能根据>=0判断,而是应该加上paddingTop的高度

if (mListView.getChildCount() > 0 && mListView.getFirstVisiblePosition() == 0 && mListView.getChildAt(0).getTop() >= mListView.getPaddingTop()) {
	return true;
}
先解释几个接口的作用:

ListView.getChildCount()

返回的是这个listView当前显示出来的item数量,也就是在屏幕上可以看到的数量。

ListView.getChildAt(int pos)

返回的是这个listView当前显示出来的item中的第pos项,也就是说索引是从显示出来的第一项开始计算的,如果屏幕上方有n个item看不见,那么这个函数的返回值就是n

ListView.getFirstVisiblePosition()

返回值是当前可以看到的第一个item,在所有item中(包括看不到的)的位置。

View.getTop()

返回值是这个View相对于它的父控件的top值,对于item而言,如果item只有一半显示出来(下半部分),那么返回值应该是 
- 这个item的高度










本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断ListView的第一个/最后一个item是否完全显示 的相关文章

  • vue样式穿透 ::v-deep的具体使用

    vue样式穿透 v deep的具体使用 更新时间 2020年06月04日 11 32 59 转载 作者 柳慕笙 这篇文章主要介绍了vue样式穿透 v deep的具体使用 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习
  • 学习笔记:近似推断(待完善)

    在很多概率模型中 很难训练的最重要的原因是 很难进行推断 所以书中 专门开了这章 来面临训练中最大而又 不能不解决的问题 近似推断 近似推断 可以视为优化问题 主要是 最大化下界 最大化下界 1 EM 期望最大化 2 MAP 最大后验推断
  • STM32 通过HAL库实现双机SPI程序烧录之一SPI双机通信

    一 实现SPI双机通信 主要功能 STM32F407VET6作为主机 STM32F103ZET6作为从机实现F4通过SPI接口发送数据给F1进行串口打印功能 主要是使用STM32cubemx进行相关配置 使用这个软件不能只用于生成代码 要学
  • kubeadm一键搭建kubernetes环境

    kubeadm一键搭建kubernetes环境 安装docker 按官网教程执行https docs docker com v17 09 engine installation linux docker ce centos install
  • Tauri打包windows应用配置中文界面

    使用 Tauri Rust 开发桌面应用 在 windows 系统上 打包后安装包名称后缀 安装界面 相关说明默认都是英文的 如果要默认显示为中文 则需要在 tauri conf json 中配置相应参数 前言 默认情况下 在 window
  • Multi-exit Network

    关键词 Multi exit 动态网络 Anytime prediction budgeted batch classification 参考 https blog csdn net c9Yv2cf9I06K2A9E article det
  • TAS-LR 论文辅助笔记 & 图拉普拉斯正则项推导

    1 图拉普拉斯正则项的直观目标函数 我们已知一张图G的邻接矩阵A 和度矩阵D 那么我们就知道他的拉普拉斯矩阵L D A 在使用矩阵分解的时空数据补全问题中 有一些文献使用图拉普拉斯正则化项来对空间特征矩阵进行约束 我们假设低秩的空间特征矩阵
  • 2021-12-23 工作记录--LayUI-单击行内容展示子表(手风琴效果),堪称yyds

    LayUI 单击行内容展示子表 手风琴效果 百度了好多办法 都不能达到这种效果 所以记录一下 最开始使用layui soul table 但是它不能实现单击行内容展示子表 而是单击行最左列展示子表 所以与项目不符 则放弃了 但是感兴趣的小萝
  • 幼儿园里面有科技设备么

    现代社会 幼儿园是孩子们是快乐且有意义的生涯起点 他们从这里认识世间万物 格物斯坦心系每位的热爱人工智能的孩子们 祖国的未来就靠你们了 幼儿园的核心工作是保证幼儿健康成长 同时需要为幼儿提供良好的学习和生活环境 随着现代技术正朝着智能化的方
  • Rocketmq Filter 消息过滤(TAGS、SQL92)原理详解 & 源码解析

    1 背景 1 1 Rocketmq 支持的过滤方式 Rocketmq 作为金融级的业务消息中间件 拥有强大的消息过滤能力 其支持多种消息过滤方式 表达式过滤 通过设置过滤表达式的方式进行过滤 TAG 根据消息的 tag 进行过滤 SQL92
  • 【 ROS 入门 2】tf 入门学习教程总结(缺少系统整理)

    ROS官网 tf 教程 http wiki ros org tf Tutorials 参考博客 三维旋转矩阵 包括任意轴的通用旋转矩阵 Euler角 单位四元数 的计算 视觉SLAM中的数学基础 第二篇 四元数 ROS学习 轻松使用tf t
  • PIL,cv2,plt的使用与区别

    PIL cv2 plt的使用与区别 1 比较三者的打开图片 显示图片 打开的图片的类型 2 图像类型的转换 PIL与numpy 3 PIL cv2 plt混用 3 1 cv2 plt读PIL打开的图像 3 2 PIL plt读cv2打开的图
  • https 是如何保护数据传输的

    为什么需要 https https 是 http ssl 也就是加密的 http 数据传输 我们都知道 https 的最主要的作用在于保证数据的安全 但具体来说 https 的安全性主要体现在以下两点 保证数据传输不被中间人盗用和信息的泄漏
  • GitHub开源协议

    开源协议 有名开源许可证 很多 经过Open Source Initiative组织 OSI批准 通过批准的开源协议目前有58种 常见的开源许可证包括 MIT MIT License GPL GNU General Public Licen
  • 预览word文件,支持下载(微软提供)

    预览打印 file 文件对象 url 接口地址 filepath 文件路径 filetype 文件类型 PS 兼容docx pdf后缀文件 export const filePreview file gt if file filepath
  • 三层架构:软件设计架构

    1 界面层 表示层 用户看的得界面 用户可以通过界面上的组件和服务器进行交互 2 业务逻辑层 处理业务逻辑的 3 数据访问层 操作数据存储文件
  • ---复位现象---GD32 MCU插入SD卡MCU立刻复位

    问题描述 程序运行正常 但是在插入SD卡的瞬间 单片机硬件复位 程序重新运行 之后状态一切正常 可以读取到SD卡 如果上电前插入SD卡 则一切正常 原因 使用示波器测试MCU电源 在SD卡插入瞬间 MCU电源电压跌落到2 5V以下 正常GD
  • 重载输入<<,输出>>,前置和后置++,--运算符

    由于系统给定的输入 lt lt 输出 gt gt 前置和后置 运算符只能处理类似于int float等系统已经定义好的类型的变量 为了能对我们自己定义的类的对象也能进行这些操作 我们就要重载这些运算符 定义一个复数类的对象 class Co
  • 基于OPENCV4的火焰烟雾检测

    现在目标检测主要采用深度学习训练模型 然后采用OPENCV4调用 烟雾火焰检测 采用CAFFE训练一个模型 采用OPENCV4调用 C PYTHON都可以调用 可以加Q 2830025146进行讨论 效果测试在 https download
  • 前端安全

    有哪些可能引起前端安全的问题 跨站脚本攻击 Cross Site Scripting XSS 一种代码注入方式 为了与 CSS 区分所以被称为 XSS 早期常见于网络论坛 起因是网站没有对用户的输入进行严格的限制 使得攻击者可以将脚本上传到

随机推荐

  • 行人重识别数据集汇总

    最近一段时间在做行人重识别方向的研究 行人重识别 Person Re Identification 作为图像识别领域的一个分支 在实际生活中具有极其重要的意义 目前 城市里的用于公共治安领域的摄像头已经大量部署 几乎到了几十米到几百米一个覆
  • Android 11(targetSdkVersion 30)不能获得存储权限的问题和适配指南

    虽然原文说的比较详细了 但我补充一两点 也为了方便自己总结和避坑 Android权限大致可分为三类 普通权限 只需要在清单文件中注册即可 危险权限 需要在代码中动态申请 以弹系统 Dialog 的形式进行请求 特殊权限 需要在代码中动态申请
  • 苹果新iPad创新乏力,中国发售遇冷失宠

    7月20日清晨 北京三里屯苹果店外有点冷清 十几个顾客在门口安静地排着队 曾经活跃的黄牛党没了踪影 守候在一旁的工作人员正在拆除原本打算维持秩序的护栏 如果不是店面上巨大的苹果标志 你恐怕很难把这个场景和苹果新品首发联系在一起 要知道在半年
  • 测试用例入门(三)-使用边界值分析法编写测试用例

    在 软件测试 一书中是这样描述边界值分析法的作用 如果在悬崖峭壁边可以自信 安全的行走而不掉下去 平地就不在话下了 本篇文章中的演示代码均由Python编写 目录 一 边界值分析法概述 二 边界条件的判断 三 边界两侧的判断 四 次边界条件
  • 输入华氏温度输出摄氏温度

    华氏温度转化为摄氏温度 c 5 9 f 32 数据 输入华氏温度 f 输出摄氏温度 c f int input 请输入华氏度 c f 32 5 9 print 6 2f华氏度对应的摄氏度为 6 2f f c 中间出过一点小问题 比如第一行双
  • input标签的类型

    今天学习突然想着input有哪些类型呢 然后就查了下资料 记录一下 1 文本框 type text 2 密码框 type password 3 单选框 type radio 4 复选框 type checkbox 5 图片上传 type f
  • linux切换用户时报错 this account is currently not available

    linux切换用户时报错 this account is currently not available 在安装完redis之后系统创建了一个名叫redis用户 但切换到这个用户的时候却报了错 this account is current
  • 网站怎么创建?

    网站怎么创建 现在很多公司企业都会有自己的网站 即使是没有网站的公司也抓紧时间纷纷入局 希望能在互联网的流量中分到一杯羹 那么网站怎么创建呢 下面给大家简单说一说 网站怎么创建步骤1 首先我们准备好一个域名 一个网站需要有域名才能访问 我们
  • 论文笔记:DEEP DECLARATIVE DYNAMIC TIME WARPING FOREND-TO-END LEARNING OF ALIGNMENT PATHS

    个人感觉 可微DTW的主要优点作为一个损失函数 可以进行梯度反向传播 如果目标只是两个时间序列的相似度 可能不太需要 1 Intro 1 1 背景 DTW 笔记 Dynamic Time Warping 动态时间规整 DTW的python实
  • 寒假训练 第一节 时空复杂度分析

    算法是由若干条指令所组成的的有穷序列 其中每一条指令表示计算机的一个或多个操作 一个好的算法首先要具备正确性 可读性和健壮性 在具备这三个条件后 就应该考虑算法的效率问题 即算法的时间效率和空间效率两方面 时间复杂度 一个算法所需要的运算时
  • windows 搭建ssh服务

    1 官网下载安装包 mls software com 2 点击安装 一直默认即可 3 配置 opensshServer 4 成功登录
  • android6.0源码分析之Camera API2.0下的初始化流程分析

    在文章android源码分析之Camera API2 0简介中 对Camera API2 0的框架以及代码做了简单介绍 本文将基于android6 0源码 分析Camera API2 0下的Camera2内置应用中 对Camera的初始化的
  • umi3 antDesignPro布局layout配置快速搭建项目

    umi3 快速搭建项目 1 环境准备 2 创建项目 3 修改配置 应用antd layout布局 1 安装antd layout插件 2 修改 umirc 文件配置路由 3 根据配置文件中component新建路由对应的组件 1 环境准备
  • c语言中weak的作用

    转载至 https blog csdn net q2519008 article details 82774774 在u boot源码中看到 weak关键字 在移植过程中遇到了问题 用例 weak在不同的环境中用法不同 在stm32源码中也
  • 合宙Air105

    基础资料 基于Air105开发板 Air105 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 官方SFUD库操作 外置flash demo相关内容的学习及探讨 扩展 合宙Air103 SDIO 扩展 LuatOS SOC
  • 服务器UDIMM, LRDIMM,RDIMM三种内存的区别

    服务器UDIMM LRDIMM RDIMM三种内存的区别 UDIMM RDIMM LRDIMM 区别与应用 随着应用程序的不断增长 内存被迫承担着更大压力 目前不管是服务器租用还是PC领域 DDR4内存技术依旧是主流 由于DDR4采用并行传
  • keil stm32f407工程环境搭建

    一 库函数 1 安装https www keil com dd2 Pack 2Feula container 直接双击Keil STM32F4xx DFP 1 0 8 pack 二 创建工程 为当前工程添加相应的库函数 点击确定 函数添加成
  • 可能影响经济体安全的技术类别

    这份新的技术出口管理新提案内容相对简洁 清晰罗列了可能会影响强大国家安全或者经济体的14类新兴和基础技术 1 生物技术 例如 1 纳米生物学 2 合成生物学 3 基因组和基因工程 4 神经科学 2 人工智能 AI 和机器学习技术 例如 1
  • mac 下 jdgui invalid input fileloader

    在一次反编译中 前面几个步骤都是正确的 将classes dex成功转为classes dex2jar jar文件 在即将把classes dex2jar jar文件在jd gui中打开的时候 出现了jdgui invalid input
  • 判断ListView的第一个/最后一个item是否完全显示

    判断最后一项 亲测可用 当然网上还有很多其他的方法 不同场景的方式可能不一样 Override public void onScroll AbsListView view int firstVisibleItem int visibleIt