首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ListView的getFirstVisiblePosition和getLastVisiblePosition是谎言吗?

这两个方法在ListView中确实存在,但是它们并不是谎言。这两个方法分别用于获取ListView中第一个可见的列表项的位置和最后一个可见的列表项的位置。这些方法可以帮助开发者了解当前屏幕上哪些列表项是可见的,以便于更好地进行性能优化和用户体验的提升。

具体来说,getFirstVisiblePosition()方法返回当前屏幕上第一个可见的列表项的位置,而getLastVisiblePosition()方法返回当前屏幕上最后一个可见的列表项的位置。这些方法可以帮助开发者了解当前屏幕上哪些列表项是可见的,以便于更好地进行性能优化和用户体验的提升。

当然,这些方法也存在一些局限性,例如它们只能获取当前屏幕上可见的列表项的位置,而无法获取整个列表的滚动位置。因此,在使用这些方法时,开发者需要注意其局限性,并根据具体的需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)

在Android开发中我们经常会用到listview数据界面刷新动作,我们每次可能会用到都是Adapter.notifyDataSetChanged()方法。...这个方法原理利用观察者模式对我们数据源进行监听,当我们数据源发生变化时候,会调用AdaptergetView()方法进行整个界面的刷新。...第一个可见位置**/ int firstVisiblePosition = listView.getFirstVisiblePosition(); /**最后一个可见位置...notifyDataSetChanged(ListView listView, int position),传入对应要更新listview要更新位置position即可 7.总结 这三种方法核心就是找出你要更新...最后要强调一点就是关于布局优化,最好将item高度设置为一个固定值,这样能减少getView调用次数。因为一个不确定值,ListView会频繁调用多次getView去确定其高度渲染。

2K20

MLOps 构建在一个谎言

这个概念相对较新,但越来越多的人们开始想要了解什么 MLOps,以及如何在自身项目中应用 MLOps 实践工具。 我相信大家也注意到了这种趋势。...这句话正是 IBM 数据科学人工智能行业 CTO、全球领袖人物 Deborah Leff 说。 不幸,这只是我查证过程中遵循一个线索(breadcrumb)。...虽然数据推动真正数字化转型关键元素,但公司常以错误方式推行数据分析项目。事实上,只有 13% 数据分析项目得以完成。并且在已完成项目中,只有 8% 公司领导对结果表示完全满意。...数以百计机器学习 MLOps 资源引用了同一文章,同一信息,即“87% 数据科学项目从未投产”,以此作为推销自己工具产品依据。...这种未经证实信息这么容易传播,尤其在严重依赖研究并非常接近研发学术环境社区中,这非常令人失望。 类似论点对于 MLOps 有何意义?可能毫无意义,但我们仍然需要这样数字。

62120

Android自定义组合控件---教你如何自定义下拉刷新和左滑删除

,但是并没有下拉刷新上拉加载结合到一起,要不就是一些比较水结合,并不能在项目里面使用,小编一着急自己组合了一个,做完了QQ对比了一下,并没有太大区别,今天分享给大家,其实并不难,但是不知道为什么网上没有比较好...Demo,当你项目真的很急时候,又没有比较好Demo,那么“那条友谊小船儿真是说翻就翻啊”,好了,下面先来具体看一下实现后效果吧: 代码已经上传到Github上了,小伙伴们记得starfollow...,看看我怎么做:(左滑菜单是引用网上Demo,代码写也比较易懂,这里不详细给大家介绍了) 然后我们在他基础上添加下拉上拉事件:(重点看一下onTouchEvent事件) @Override...不可见item会报空指针 // 防止listview不可见item获取到为空,使用下面方法 View view = getChildAt...() && position <= getLastVisiblePosition()) { View view = getChildAt(position - getFirstVisiblePosition

1.4K10

【Android从零单排系列二十】《Android视图控件——ListView

ListView基本介绍 ListViewAndroid开发中常用列表视图控件,用于展示垂直滚动可变长度数据列表。...getAdapter():获取当前设置适配器。 getFirstVisiblePosition():获取当前可见区域第一个列表项位置。...getLastVisiblePosition():获取当前可见区域最后一个列表项位置。 invalidateViews():通知ListView刷新所有列表项视图。  ...ArrayAdapter:ArrayAdapter基于数组简单适配器,用于将数据与ListView绑定。它适用于静态、固定长度数据集合,例如字符串数组或整数数组。...通过适配器点击事件监听器配合,ListView可以灵活地展示、交互处理列表数据。

33910

实现一个带有headerfooter功能RecyclerView

RecyclerViewAndroid 5.0版本引入一个新组件,目的在一些场景中取代之前ListViewGridView,实现性能更优解决方案。...我们知道RecyclerView很灵活,灵活到很多功能需要我们自己实现,比如ListViewGridView中最常用Item点击事件。...header&footer 在ListView中我们经常使用headerfooter功能,确实也给我们带来了不少方便,而且使用场景很多。...如果正常item,直接调用外部adapter对应方法;如果headerfooter,在对应标识上要减去该header或footer在对应list中位置,下面就会解释这样做原因。...由于GridLayoutManagerStaggeredLayoutManager多列,每个headerfooter都需要独占一行,所以我们需要对这两种LayoutManager分别作一些处理。

1.5K20

1、创建刷新控件

自定义ListView下拉刷新上拉加载更多   跳转 自定义RecyclerView下拉刷新上拉加载更多   跳转 Listview现在用很少了,基本都是使用Recycleview,但是不得不说Listview...他recycleview不同,他生来具有addHeaderViewaddFooterView功能,这也导致同样都是列表控件,实现上拉下拉方式缺截然不同。...; init(context); } public void init(Context context) { } 1.1、创建头部View  头部样式,我写最简单...然后diffY就是手指滑动距离,我们需要处理一下这个值,因为值太大,而且值整数,会让我们下拉时候产生错乱,我们本意让其从-100到0缓慢滑出(比如头部高度100,从隐藏到显示就是-100到0)...,小伙伴都可以试试viewHeader.setPadding(0, diffY, 0, 0);viewHeader.setPadding(0, paddY, 0, 0);效果不一样,diff/3让其有种阻尼感觉

51010

XListView实现下拉刷新和上拉加载原理解析

Footer是为了完成加载更多功能时候界面展示,基本思路Header一样,下面Footer代码 public class XListViewFooter extends LinearLayout...思路一样,只不过,footer拉伸显示效果不是通过高度来模拟,而是通过设置BottomMargin来完成。...首先,一旦使用XListView,FooterHeader就已经添加到我们ListView上面了,XListView就是通过继承ListView,然后处理了屏幕点击事件控制滑动实现效果。...getRowY()获取元Y坐标,意思就是WindowView坐标没有关系坐标,代表在屏幕上绝对位置。...在这里面,只对可见位置0item总数-1位置进行了处理,其实正好对应headerfooter。

76520

ListView中实现部分刷新两种方法

大家好,又见面了,我你们朋友全栈君。 ListView在开发中用到地方非常多,我们经常是全部刷新来更新数据,如果只需要更新某一条数据,该怎么实现呢?...我在项目中使用过以下两种方法: 1.通过点击位置,获取需要刷新那一列对应控件,然后在控件上显示新数据。 2.通过点击位置,在数据源上移除对应位置数据,并且重新设置新数据,然后刷新。...ItemView,一个重新设置数据源来实现更新某一条数据。...这里有个地方需要注意下:View view = mListView.getChildAt(pos – mListView.getFirstVisiblePosition());,位置不要计算错。...mListView; public void setListView(ListView listView){ mListView = listView; }

1.1K20

SSL证书域名绑定

ssl证书根据域名来签发,申请ssl证书首先肯定要提供域名,而域名解析到ip地址上,那么究竟ssl证书域名绑定还是ip地址绑定呢?   ...以前有人听说生成证书时可以用IP地址,认为如果没有域名也可以绑定IP,两者有一个就可以申请,其实用ip地址绑定ssl证书时会报错,ssl证书不能直接ip地址绑定。   ...一个ssl证书可以绑定多个域名。这样一来就可以避免购买多个ssl证书费用了。...多域名型ssl证书指可以在一个证书中绑定多个不同网站域名,比较适合中小型企业,有好几个站点只需要购买一张ssl证书即可。   ...所以当用户拥有多个域名或者多个子域名网站,并希望通过一个ssl证书来保护所有域名,那么多域名型ssl证书通配符型ssl证书最佳选择了,因为多域名通配符ssl证书既能保护多个域名网站,同时也能保护多个子域名网站

10.1K30

SwipeRefreshLayout与RecyclerView巧夺天工

大家好,又见面了,我你们朋友全栈君。...平常开发我们需要使用ListView下拉刷新或者其上滑加载时候,不是自己写就是用别人写好了,但是编程中有一点不变,就是一般封装好东西,其扩展性极低,比如你使用xutils,imageloader...等开源框架时候,它允许你扩展?...同理,当你子视图用布局包裹时候,其就是你自定义,除非你子视图只有ListView,当有多个控件时候,其默认找不到ListView监听其滑动事件,必须重写该方法。...从这里可以看到,虽然说ListView有点击事件,有许多扩展,但你想扩展ListView就必须重构很多地方。而RecyclerView,虽然什么都没有,但你扩展起来要方便多。这就是从0开始优势。

1.3K20
领券