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

获取无限RecyclerView的中心可见项值

是指在一个无限滚动的RecyclerView中,获取当前屏幕中心位置的可见项的值。下面是一个完善且全面的答案:

在无限RecyclerView中,通常使用LayoutManager来管理布局和滚动。要获取中心可见项的值,可以通过以下步骤实现:

  1. 获取RecyclerView的LayoutManager对象:LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
  2. 计算屏幕中心位置的位置索引:int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition(); int lastVisibleItemPosition = layoutManager.findLastVisibleItemPosition(); int centerPosition = (firstVisibleItemPosition + lastVisibleItemPosition) / 2;
  3. 获取中心可见项的值:YourAdapter adapter = (YourAdapter) recyclerView.getAdapter(); YourData centerItem = adapter.getItem(centerPosition);

在上述代码中,YourAdapter是你自定义的RecyclerView的适配器,YourData是适配器中的数据类型。根据具体情况进行替换。

这种方法适用于无限RecyclerView,即数据源是无限循环的。它可以用于实现一些特殊的滚动效果,比如无限轮播图、时间轴等。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供灵活可扩展的云服务器实例,适用于各种应用场景。产品介绍链接
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于存储和处理各种非结构化数据。产品介绍链接
  • 腾讯云人工智能(AI):提供丰富的人工智能服务和工具,包括图像识别、语音识别、自然语言处理等。产品介绍链接
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,包括设备接入、数据管理、应用开发等。产品介绍链接
  • 腾讯云区块链(BCB):提供安全高效的区块链服务,适用于构建可信任的分布式应用。产品介绍链接
  • 腾讯云视频处理(VOD):提供强大的视频处理和分发服务,适用于在线视频播放和直播场景。产品介绍链接

请注意,以上链接仅供参考,具体的产品选择应根据实际需求进行评估和决策。

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

相关·内容

如何在 WPF 中获取所有已经显式赋过依赖属性

获取 WPF 依赖属性时,会依照优先级去各个级别获取。这样,无论你什么时候去获取依赖属性,都至少是有一个有效。有什么方法可以获取哪些属性被显式赋值过呢?...如果是 CLR 属性,我们可以自己写判断条件,然而依赖属性没有自己写判断条件地方。 本文介绍如何获取以及显式赋值过依赖属性。...---- 需要用到 DependencyObject.GetLocalValueEnumerator() 方法来获得一个可以遍历所有依赖属性本地。...} } 这里 value 可能是 MarkupExtension 可能是 BindingExpression 还可能是其他一些可能延迟计算提供者。...因此,你不能在这里获取到常规方法获取依赖属性真实类型。 但是,此枚举拿到所有依赖属性都是此依赖对象已经赋值过依赖属性本地。如果没有赋值过,将不会在这里遍历中出现。

19140
  • android gallery当前view变大,GitHub – hutcwpGalleryViewDemo: 实现画廊效果(中间放大两边缩小)无限循环向左滑向右滑,Viewpager和Recycl

    :28.0.0’ 一个是ViewPager所在包,另一个是RecyclerView所在包 RecyclerView实现GalleryView效果可(伪无限)无限左滑右滑 先上效果图 要点: 在有限数据里面..., 实现无限个Item,也就是可循环 在第一次显示时候, 就可以左滑 滑动Item被放大 用RecyclerView实现GalleryView效果已经有BCsl大神BCsl/GalleryLayoutManager...试图回收机制 在有限数据里面,实现无限个Item 在RecyclerView.Adapter方法中: @Override public int getItemCount() { return...smoothScrollToPosition(position)和scrollToPosition(position)效果基本相似,也是把你想显示显示出来,只要那一现在看得到了,那它就罢工了, 不同是...; } 在第一次显示时候, 就可以左滑 这个简单只需要在一开始时候,产生一定偏移量就可以左滑了 /**这里需要将setOffscreenPageLimit设置成数据源总个数,设置ViewPager

    2.3K20

    自定义无限循环LayoutManager

    概述 在日常开发过程中,同学们都遇到过需要RecyclerView无限循环需求,但是在官方提供几种LayoutManager中并未支持无限循环。...众所周知,RecyclerView中含有四类缓存,在布局过程中它们各自有各自用途: AttachedScrap: 存放可见、不需要重新绑定ViewHolder CachedViews: 存放不可见、...当左滑后子View被左移动时,RecyclerView右侧会出现可见未填充区域,这时需要在RecyclerView右侧添加并布局好新子View,直到没有可见未填充区域为止。 ?...在RecyclerView中,需要在滑动、填充可见区域同时,对不可见区域子View进行回收,这样才能体现出RecyclerView优势。 回收方向与填充方向恰好相反。...(new RepeatLayoutManager 结语 到此,无限循环LayoutManager实现已经完成。

    2.3K20

    Android无限循环RecyclerView完美实现方案

    背景 项目中要实现横向列表无限循环滚动,自然而然想到了RecyclerView,但我们常用RecyclerView是不支持无限循环滚动,所以就需要一些办法让它能够无限循环。...,让RecyclerView无限循环。...看标注3,往右边填充时候需要检测当前最后一个可见itemView索引,如果索引是最后一个,则需要新填充itemView为第0个,这样就可以实现往左边滑动时候无限循环了。.../** * 回收界面不可见view */ private void recyclerHideView(int dx, RecyclerView.Recycler recycler, RecyclerView.State...至此,一个可以实现左右无限循环LayoutManager就实现了,调用方式跟通常我们用RrcyclerView没有任何区别,只需要给 RecyclerView 设置 LayoutManager 时指定我们

    4.8K20

    RecyclerView 居然还能实现吸底效果

    获取h1和h2:为了避免recyclerView获取高度0,我们需要在给RecyclerView设置完数据之后,通过View#post(Runnable)方法获取。...分组悬停实现方式二:onDrawOver中获取Item中可见View,从中获取分组头部View进行复用 这种方法,将需要悬停部分也绘制到Item中,Adapter中Item是一个组所有元素,Item...我们在onDrawOver中获取到第一个可见子View,然后根据id从里面获取到头部View,接着将这个用canvas将这个View绘制出来即可。 有兴趣同学可以自行实现。...我们有两种选择,一个是最后一个可见子View——lastView,一个是最后一个完全可见子View——lastVisibleView,他们位置分别通过下面方法获取到: int lastPosition...lastVisibleView永远在RecyclerView内部显示,它bottom会一直小于等于RecyclerView.getHeight

    3K20

    Android | Tangram动态页面之路(一)需求背景

    )、数据资源位聚合、RecyclerView异构和扁平。...像商城首页,商品详情等相对稳定页面,对灵活性要求并非无限,只要各模块足够抽象、细粒度,native也是可以满足日常和大促需求。...客户端不可能去发起多个请求拉取不同资源位数据,所以就有了聚合层接口,客户端通过一个聚合接口,获取聚合数据, ? 商品流不属于资源位数据,所以独立成一个接口。...功能查看view树,可见图中39和43两个小模块都是RecyclerView直接子view,有着平级关系, ?...这就是用RecyclerView实现异构和扁平化基本概念,vlayout通过自定义LayoutManager进行了实现。关于异构和扁平,更详细分析可见参考文章。

    1K40

    又来新需求了,急,Android怎么实现时间线效果?

    ,根据每个状态不同,展示不同颜色圆点和竖线 细节分析 某一个时间线view,其中有哪些细节呢?...首先发现,这个时间线view是由两个大部分组成,分别是:圆、线 然后我们自然可以注意到,在一个时间线中,又出现了两种颜色:圆上面的线(以下简称为上线)是绿色,圆本身和圆下面的线(以下简称为下线)又是红色...+ paddingRight + radius.toInt() * 2,留出偏移量位置 修改xPosition初始为radius + paddingLeft,改变轴线x坐标 到这里第一个版本就算完成啦...: 绘制上线前,需要通过data数据源获取到上一个item,并用color属性获得其状态对应颜色 绘制圆和下线前,同样需要改变到这一个item颜色 用parent.childCount获取子项数量指的是屏幕中可见部分...否则会出现【当前屏幕上可见最后一不是真正最后一,但它却没有下线,但向下滑动后它又有下线了】尴尬场景 注意到此时用于判断是否为最后一个item方法,从count - 1变为了data.size

    47500

    项目需求讨论 - RecycleView 分页加载实现分析

    findLastCompletelyVisibleItemPosition():由字面意思就可以看懂,返回最后一个完全可见itemposition。...adapter.isHasMore():这个方法是我们自己在adapter中自定义方法,返回一个boolean,比如我们再次调用后台接口获取数据时候,后台给我们返回数据已经为空了。...第五步: 我们滑到了底部,调用了我们获取数据接口代码,这时候我们要分三种情况来处理: 如果后台给我们是四个数据,那说明有可能后面还会有数据,那我们这时候拿到四条数据后,只需要在最后一前面插入,这样的话...中最后一状态为STATE_LASTED,然后也要调用adapter.appendList(list); 3.假设后台返回json中code不是200(code== 200说明获取数据成功),我们获取数据时候...这样最后一就变成了,并且具有了点击重新加载功能。 注意,比如我们已经滑到最下面了。这时候去调用我们后台接口了。这时候,最后前面用一个boolean去做判断。

    17710

    Android RecyclerView刷新分页实现

    四个方法: findFirstVisibleItemPosition() 获得屏幕上第一个可见 Item position,只要该 Item 有一部分可见,那么返回 position 就是该Item...findFirstCompletelyVisibleItemPosition() 获得屏幕上第一个完整可见 Item position,只要该 Item 有一部分不可见,那么返回 position...findLastVisibleItemPosition() 获得屏幕上最后一个可见 Item position,只要该 Item 有一部分可见,那么返回 position 就是该Item position...findLastCompletelyVisibleItemPosition() 获得屏幕上最后一个完整可见 Item position,只要该 Item 有一部分不可见,那么返回 position...rv; RvAdapter1 adapter; private ArrayList<String arrayList = new ArrayList< (); //加载更多数据时最后一索引 private

    1.3K40

    RecyclerView 自定义ItemDecoration从入门到实现吸顶效果

    看名字可以知道是设置item偏移,其实效果和padding一样。...需要注意是三个方法都有一个RecyclerView parent,通过这个参数我们可以获取RecyclerView属性,例如 parent.getChildCount();获取子View个数,...但是这个并不是获取RecyclerView所有的item个数,而是当前屏幕可见item个数。...判断当前屏幕第一个可见item是哪个 把当前屏幕可见item进行对比,如果item内容第一个字相同,则把它们归为一组,用一条分割线显示即可. 先来实现1和2要求,主要代码部分如下: ?...接着来实现实现: 当前屏幕可见第一个itemBottom<=item_height(分割线高度)让第一条分割线随着RecyclerView向上滑动直到滑出屏幕,代码如下: ?

    1.3K10
    领券