android ViewPager+FragmentStatePagerAdapter无限循环FragmentStatePagerAdapter

【控件篇】ViewPager+FragmentStatePagerAdapter 页面切换案例详解 很多APP在安装后第一次启动时都会出现一系列引导界面,用于介绍APP的主体功能。 这个实现这个引导界面的控件,就是本文要介绍的ViewPager控件 博主在工作中遇到一个问题,我们的APP中有一个用户下单的功能,但因为业务性质,下一个订单需要填写的信息非常多,手机一个屏幕的大小尚且未能全部装下。 这就导致了用户在使用我们的APP进行下单时,用户体验极其不友好。 ViewPager主要突出一 阅读详情

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用ViewPager 和FragmentStatePagerAdapter做翻页效果的话,当从最后一页换到第一页的时候,动画效果会从最后一页倒滑到第一页。</span>

下面介绍一种方法,可以让ViewPager无限的翻页。

代码如下:


<pre name="code" class="html">public class MyFragmentStatePagerAdapter extends FragmentStatePagerAdapter{

		public MyFragmentStatePagerAdapter(FragmentManager fm) {
			super(fm);
			// TODO......
		}


		@Override
		public Fragment getItem(int index) {
			// TODO......
			return new Fragment();
		}

		@Override
		public int getCount() {
			return Integer.MAX_VALUE;
		}
		
	    @Override
	    public Object instantiateItem(ViewGroup container, int position) {
	    	return super.instantiateItem(container,position % mRealCount);
	    }
	    
	    @Override
	    public void setPrimaryItem(ViewGroup container, int position, Object object) {
	    	super.setPrimaryItem(container,position % <span style="font-family: Arial, Helvetica, sans-serif;">mRealCount</span><span style="font-family: Arial, Helvetica, sans-serif;">, object);</span>
	    }
	    
	    @Override
	    public void destroyItem(ViewGroup container, int position, Object object) {
	    	super.destroyItem(container, position % mRealCount, object);
	    }
}

主要注意这些:

1、getConunt的时候,返回Integer.MAX_VALUE。

2、后面的三个函数,需要把position的值做转换,转成实际的索引。

3、和平常使用一下,getItem返回一个Fragment,通常需要在这里为Fragment设置数据。


接下来的事情就很简单了,把这个Adapter设置给ViewPager, 并调用ViewPager.setCurrentItem(Integer.MAX_VALUE>>1);

这样就可以左右无限滑动 了。


Android Studio ViewPager2+Fragment实现无限滑动效果 通过ViewPager2的onPageSelected监听实现ViewPager2+Fragment的无限滑动效果 阅读详情

相关推荐

Android FragmentPagerAdapter数据刷新notifyDataSetChanged没效果研究或不执行OnCreatView方法导致界面不刷新

今天遇到一个问题是Fragment+ViewPager搭配使用的时候,页面刷新不执行OnCreateView方法到时,数据是有刷新了,但是UI界面没有刷新,还是原来的数据显示。 下面先说说我项目中的需求吧,这样我们可以针对问题去解决。 需求:在一个页面中使用ViewPager+Fragment搭配使用,在ViewPager中实现不同页面的滑动。并且ViewPager中的页面数量是根据网络请求回来

jiang547860818的博客 5609

多个viewpager导致Fragment不显示的问题

转自:http://www.trinea.cn/android/android-source-code-analysis/multi-viewpager-to-fragment-not-init/场景:封装后自定义的viewpager,在同一个Activity页面添加多个时,由于id相同,会导致viewpager不显示原因:多个ViewPager引发的Fragment未初始化 本文主要介绍View

u012060443的博客 1486

Android ViewPager无限循环实现完整方案

在Android应用开发中,ViewPager作为页面横向滑动的经典组件,广泛应用于轮播图、引导页和多标签界面。然而,其默认行为并不支持“无限循环”——即用户从最后一页向右滑动可无缝跳转至第一页,或从第一页向左滑动进入最后一页。这种视觉断层会破坏用户体验的连贯性。为解决这一问题,必须对进行深度定制,通过虚拟化数据索引、重构适配器逻辑以及优化初始位置策略,构建出一种伪无限滚动机制。该机制的核心思想是:不真正扩展原始数据集,而是通过映射算法将有限的真实数据在无限的虚拟空间中循环展示。

weixin_33531560的博客 1138

Android中解决FragmentPagerAdapter刷新Fragment无效的问题

前言 在项目中,我采用的是ViewPager+FragmentPagerAdapter+Fragment的方式,要实现fragment的刷新,但是发现并没有把ViewPager中的fragment替换掉,因此上网查阅了很多博客,最后解决了这个问题。 解决方法 我就直接贴上我的代码 public class MyViewPagerAdapter extends FragmentPagerAdapte...

weixin_41122292的博客 2167

STM32F4用FSMC驱动AX58100 EtherCAT从站芯片,保姆级配置流程与避坑指南

本文详细介绍了STM32F4通过FSMC接口驱动AX58100 EtherCAT从站芯片的完整配置流程,包括硬件连接、时序优化、协议栈移植及TwinCAT主站集成。针对工业自动化场景,提供高性价比的实时控制解决方案,特别适合机械臂、CNC机床等精确同步应用,并分享关键调试技巧与性能优化方法。

weixin_27869497的博客 306

DINOv3 网络结构解析:从 ViT 到 ConvNeXt 的双路线设计

本文深入解析了DINOv3网络结构的双路线设计,包括ViT和ConvNeXt两种主干架构。ViT路线通过轴向旋转位置编码解决了传统ViT对固定分辨率的依赖,而ConvNeXt路线则优化了卷积设计,提升了实时处理能力。文章还探讨了Gram Anchoring、混合自监督目标等关键技术,展示了DINOv3在多任务和多模态应用中的强大潜力。

weixin_29214199的博客 563

Android Viewpager实现真正无限循环的轮播广告banner ViewPager + FragmentStatePagerAdapter + Fragment(抖音四)

1.ViewPager添加view---实现广告图片轮播 2ViewPager无限滑动---实现广告图片无限循环 1.ViewPager,实现真正的无限循环(定时+手动) 2.ViewPager + FragmentStatePagerAdapter + Fragment 3.抖音 ViewPager突出的底部标题栏的实现clipChildren 4.Fragmen...

深南大盗的博客 1894

Xilinx PCIe IP核示例工程仿真流程与关键任务解析

本文详细解析了Xilinx PCIe IP核示例工程的仿真流程与关键任务。通过搭建仿真环境、解读初始化日志,并深入剖析TSK_TX_MEMORY_WRITE_32等核心任务的TLP报文生成与交互过程,帮助开发者掌握PCIe IP核的仿真调试方法,为实际硬件设计提供可靠的验证基础。

weixin_28314575的博客 507

ViewPager+Fragment使用中的几个常见问题总结

1.实现循环切换 思路一:在ViewPager的Adapter中返回count的值为 Integer.MAX_VALUE ,进行初始化的时候讲ViewPager的 setCurrentItem(int item) 的方法中传入Integer.MAX_VALUE的一个中间值,因为Int的最大值是2147483647 如果设它的中间值用户是很难滑到两端的,但是并意味着不能滑到两端。 思路二:在item...

宋大人专栏 2002

深入理解DQN中的Q值:核心概念和应用

在强化学习中,Q值(或称为动作价值函数)是核心概念之一。Q值函数 ( Q(s, a) ) 表示在给定状态 ( s ) 下,采取动作 ( a ) 并遵循某策略后,智能体从当前状态到未来状态所能获得的预期总回报。简言之,Q值是评估特定状态和动作对的好坏的指标。

qlkaicx的博客 2975

手把手教你配置SAP EWM HU类型及号段分配(含常见错误排查)

本文详细介绍了SAP EWM系统中HU类型及号段分配的配置方法,包括环境准备、包材主数据配置、存储类型关联及号段管理。通过实战案例和常见错误排查,帮助用户高效完成HU配置,提升仓储管理效率。重点讲解了EWM后台配置和号段配置的关键步骤与技巧。

weixin_33670786的博客 443

ViewPager Kotlin 教程入门

原文:ViewPager Tutorial: Getting Started in Kotlin 作者:Diana Pislaru 译者:kmyhy ViewPager 是一个强大的布局管理工具,允许你在 app 中使用滑动手势进行导航。通常用于创建幻灯片效果、启动引导,或者 tab view。通过左右滑动在两个 ViewPage 页面之间切换,从而节省屏幕空间,创建更加迷...

kmyhy的专栏 5449

【人工智能】AI驱动值班巡检Agent(Hermes)

传统运维值班巡检场景中,存在四大核心痛点:本项目基于 Agent+Skills+浏览器自动化 架构,构建了具备自我进化能力的AI值班员,核心逻辑流如下:

奶爸的编程之路,也就一周冷个三天 178

viewpager实现无限循环滚动幻灯片

思路是:设置pageradapter的count为Integer.MAX_VALUE,但实际的item只有几个,用取余的方式取item,在设置adapter时同时设置currentItem为实际item数的N倍(足够大就好)。这样就可以左右无缝循环滑动!(毕竟你不可能滑上亿次),并且不用担心内存问题,就那几个玩意~~~

编程小白菜的专栏 1387

音频链路分析

音频链路分析摘要 本文分析了蓝牙音频设备(BES2700)的音频传输链路,主要包括通话和音乐播放两种场景: 通话链路: 下行:蓝牙接收数据→解码→通过Codec输出到扬声器 上行:麦克风采集→Codec处理→蓝牙编码发送 音乐播放链路: 通过A2DP协议接收高质量音频数据 经过解码、EQ调节等音频处理后输出 系统采用多线程消息机制处理音频任务,通过mailbox传递控制消息,由回调函数处理具体音频数据流。不同应用场景使用不同的蓝牙协议栈(HFP/HSP用于通话,A2DP用于媒体)和编码方式(mSBC/SBC

云淡风轻 85

16、树莓派Pico W:蓝牙与Wi-Fi应用指南

本文介绍了树莓派Pico W在蓝牙与Wi-Fi通信方面的应用,涵盖蓝牙配对原理、使用HC-06模块实现手机远程控制LED和传输内部温度,以及通过Wi-Fi进行网络连接、扫描和UDP协议下的设备控制。文章包含详细电路连接、代码实现与测试步骤,并提供拓展建议、常见问题解决方法及开发注意事项,帮助读者快速掌握基于Pico W的无线通信项目开发,适用于物联网入门与实践场景。

sun99的博客 289

Android实现ViewPager无限循环滚动回绕

 Android实现ViewPager无限循环滚动回绕 Android系统提供的ViewPager标准方式是左右可以自由滑动,但是滑动到最左边的极限位置是第一个page,滑动到最右边的位置是最后一个page,当滑动到最左或者最右时候,就不能再滑动/滚动了,这是Android系统默认的ViewPager实现方式。 但是有些情况下开发者可能希望ViewPager能够智能的无限循环滚动...

weixin_33721427的博客 522

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ViewPager 全面总结

一、简介 Viewpager,视图翻页工具,提供了多页面切换的效果。Android 3.0后引入的一个UI控件,位于v4包中。低版本使用需要导入v4包,但是现在我们开发的APP一般不再兼容3.0及以下的系统版本,另外现在大多数使用Android studio进行开发,默认导入v7包,v7包含了v4,所以不用导包,越来越方便了。 Viewpager使用起来就是我们通过创建adapter给它填充多...

编码之路 8万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ViewPager

需要注意的是1.在无限循环中要注意什么时候addView什么时候removeView 2.无限循环的原理主界面<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_widt

bianshaopeng的博客 359

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

带Tab的viewpager可循环滑动

不是真正意义上实现的无限循环,只是设置一个最大值,但是想到用户一般也不可能真正滑到无限大值去,所以这种伪循环也是可以满足需求的。   实现的核心是利用两个viewpager,一个做tab,一个做content。设置一个最大可滑动数,比如1000,这个值不能太大,否则会OOM,内部机制应该是会首先根据你getcount的数初始化一个子项为null的数组。在初始化viewpager的时候选中最中...

iteye_837的博客 236

自定义轮播组件PictureCarousel的实现过程

定义了PictureCarousel类,直接在项目中使用,很方便集成轮播组件。 Github地址:https://github.com/bendeng/PictureCarousel 想起两年前使用Gallery来做轮播组件,当时时不时还要OOM一下,没有使用UIL时,不知内存管理的重要性,没熟练使用ViewPager时,也不知ViewPager的机制对内存的占用是多么的友好。效果图如下: 实

goup的专栏 2620

Android ViewPager用法解析

ViewPager简介ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view: ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。 ViewPager类需要一个PagerAdapter适配器类给它提供数据。 ViewPager经常和Fragment一起使用,并且提供了专门的FragmentPagerAdapt

Watson的博客 3295

循环ViewPager神器 LoopingViewPager:打造无缝滚动的焦点展示体验

循环ViewPager神器 LoopingViewPager:打造无缝滚动的焦点展示体验 LoopingViewPagerA ViewPager that supports infinite looping effect, smart auto-scroll, compatible with any indicators and easy to use. It especially uses i...

gitblog_00076的博客 405

测试适配及MyApplication

/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/MyAdapter package com.bwei.fengkai.adapter; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManag

qq_39439715的博客 341

Android ViewPager 实现无限循环滑动

先高亮一个问题向大家请教,谢谢大家!就是用PagerTabStripe实现时,title总是在文字的中间,怎么能让标题在view的左上角呢?谢谢大家!图是在随便找的,就是怎么让这个“Nearby”显示在最左边呢? 已经用ViewPager 和PagerTabStrip 实现了页面滑动和tab滑动,老板又要求实现无限循环滑动( ▼-▼ ),纠结了很久,想到了一个不算办法的办法,即把adap

u012572538的专栏 3423

高级UI晋升之常用View(三)中篇

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 本篇文章将从ViewPager来介绍常用View: 文章目录 一、简介 二、基本使用 xml引用 page布局 创建适配器 设置适配器 标题栏 5.1. xml引用 5.2. 重写PagerAdapter的getTitle()方法 翻页动画 6.1. Depth...

AndroidAlvin的博客 218
上一篇: [API GUIDE 学习笔记]android MediaPlayer 播放视频
下一篇: [设计模式学习笔记]Adapter适配器模式
q2014818
博客等级 码龄12年 10粉丝 78原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值