RecyclerView中不同的位置概念可以协助你更有效地处置数据项和用户交互

  • 电脑网络维修
  • 2024-11-15

getAdapterPosition

getAdapterPosition()是RecyclerView.ViewHolder类的一个方法,用于失掉与该ViewHolder关联的名目在适配器(Adapter)中的位置。在数据绑定、点击事情处置、以及须要知道名目在列表或网格中详细位置的其余场景中十分有用。

从RecyclerView的onBindViewHolder、onClick或其余与ViewHolder关系的回调中经常使用getAdapterPosition方法时,会前往与ViewHolder绑定的数据项在适配器中的索引。

 void onBindViewHolderRecyclerViewViewHolder holder  position {holderitemViewsetOnClickListenernew OnClickListener { void onClick v { adapterPosition  holdergetAdapterPosition adapterPosition  RecyclerViewNO_POSITION {// 处置点击事情,经常使用adapterPosition作为索引}}}}

遗憾的是getAdapterPosition方法标志为过时废除了。

getBindindAdapterPosition

getBindingAdapterPosition()是RecyclerView.ViewHolder类的一个方法,与getAdapterPosition()相似,但用途上略有不同。

RecyclerView经过LayoutManager来确定每个名目的位置和大小,并经常使用Adapter来提供数据和将数据绑定到视图上。为了提升性能,RecyclerView会复用ViewHolder对象,这象征着同一个ViewHolder实例或许会被用来绑定不同位置上的数据。

前往的是ViewHolder最后绑定数据时的适配器位置(在数据最后一次性变动后的位置)。

假设在数据变动后,ViewHolder没有被从新绑定,前往的或许是之前的位置。

只在onBindViewHolder()方法的高低文中有效。

前往的是正在绑定到ViewHolder的数据项在适配器中的位置。

在onBindViewHolder()方法之内查用此方法或许会前往RecyclerView.NO_POSITION(-1),此时ViewHolder或许没有绑定就任何数据项。

getAbsoluteAdapterPosition

getAbsoluteAdapterPosition()是RecyclerView.ViewHolder的一个方法,用于失掉与ViewHolder关联的项在适配器中的相对位置。

1.「前往值」

假设ViewHolder与某个项关联,前往一个大于或等于0的整数,示意该项在适配器中的相对位置。

假设ViewHolder没有与任何项关联(例如,由于该项曾经从列表中移除或许ViewHolder正在被回收),前往RecyclerView.NO_POSITION,其值为-1。

2.「留意事项」

getAbsoluteAdapterPosition()思考了嵌套的RecyclerView层级,前往的位置或许与间接经过getAdapterPosition()取得的位置不同。

当处置嵌套RecyclerView的交互或数据时,经常使用getAbsoluteAdapterPosition()可以确保失掉到的是全局的、惟一的位置。

getAbsoluteAdapterPosition()也或许在ViewHolder被回收或没有与任何项关联时前往RecyclerView.NO_POSITION,在经常使用其前往值之前应启动审核。

getLayoutPosition

getLayoutPosition()是RecyclerView.ViewHolder类的一个方法,用于失掉ViewHolder在的规划中的位置。这个位置是基于屏幕上可见的项和RecyclerView的滚动形态来确定的。

1.「经常使用场景」

与getAdapterPosition()不同,getLayoutPosition()前往的是ViewHolder在可见项列表中的位置,它或许因滚动而出现变动。

2.「前往值」

假设ViewHolder与某个项关联并且在屏幕上可见,前往一个大于或等于0的整数,示意该项在规划中的位置。

假设ViewHolder没有与任何项关联(例如,由于该项曾经从列表中移除或许ViewHolder正在被回收),前往RecyclerView.NO_POSITION,值为-1。

3.「留意事项」

getLayoutPosition()前往的位置是基于屏幕上可见的项和RecyclerView的滚动形态来确定的。假设滚动了RecyclerView,即使项的适配器位置没有变动,它的规划位置也或许会变动。

假设ViewHolder曾经被RecyclerView回收或不再与任何项关联,getLayoutPosition()将前往RecyclerView.NO_POSITION。

在大少数状况下,假设须要处置与项关系的数据或事情,并且不关心这些项在屏幕上的详细位置,经常使用Adapter关系的位置方法会更为适宜。

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8455.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号