android中ViewPager结合Fragment进行无限滑动
发布时间 - 2026-01-11 00:03:59 点击率:次实现ViewPager结合Fragment实现无限循环切换,这里也是在适配器里面进行的,当然使用滑动监听也能够实现
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.view.ViewGroup;
import java.util.ArrayList;
public class adapter extends FragmentPagerAdapter
{
private ArrayList<Fragment> fragmentList;
public adapter(FragmentManager fm)
{
super(fm);
}
public adapter(FragmentManager fm, ArrayList<Fragment> fragmentList)
{
super(fm);
this.fragmentList=fragmentList;
}
@Override
public Fragment getItem(int position)
{
//在这里不处理position的原因是因为getItem方法在
//instantiateItem方法中调用。只要在调用前处理
//position即可,以免重复处理
return fragmentList.get(position);
}
@Override
public int getCount()
{
return Integer.MAX_VALUE;
}
@Override
public int getItemPosition(Object object)
{
return super.getItemPosition(object);
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
//处理position。让数组下标落在[0,fragmentList.size)中,防止越界
position = position % fragmentList.size();
return super.instantiateItem(container, position);
}
}
经过实际检验,要传进4个fragment,否则往右边滑动会出现问题,原因不知......
想要实现答题界面的翻页效果便可以采用这种方法,可以建立一个ReadFragment,然后new 出4个这个Fragment的对象。不同页面的共同的处理可以直接在ReadFragment里头实现,翻页的时候每一页需要改变的参数可以在滑动监听器里获取这4个对象来实现。
Fragment a=new ReadFragment();
Fragment b=new ReadFragment();
Fragment c=new ReadFragment();
Fragment d=new ReadFragment();
list=new ArrayList<Fragment>();
list.add(a);
list.add(b);
list.add(c);
list.add(d);
readViewPager.setAdapter(new adapter(getSupportFragmentManager(),list));
readViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
{}
@Override
public void onPageSelected(int position)
{
//处理position。让position落在[0,fragmentList.size)中,防止数组越界
position = position % list.size();
ReadFragment fragment= (ReadFragment) list.get(position); //获得此时选中的fragment
fragment.refreshState(); //翻页的时候每个页面需要改变的参数使用这个方法来实现,这个方法在ReadFragment里面,修饰器得使用public
...
}
@Override
public void onPageScrollStateChanged(int state)
{}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# viewpager无限滑动
# viewpager
# fragment
# 无限滑动的viewpager
# Android中TabLayout+ViewPager 简单实现app底部Tab导航栏
# Android自定义ViewPagerIndicator实现炫酷导航栏指示器(ViewPager+F
# Android ViewPager实现轮播图效果
# Android实现基于ViewPager的无限循环自动播放带指示器的轮播图CarouselFigur
# Android ViewPager加载图片效果
# Android中ViewPager获取当前显示的Fragment
# 详解Android_性能优化之ViewPager加载成百上千高清大图oom解决方案
# Android实现Tab布局的4种方式(Fragment+TabPageIndicator+View
# Android画廊效果之ViewPager显示多个图片
# Android使用自定义PageTransformer实现个性的ViewPager动画切换效果
# 翻页
# 落在
# 来实现
# 是在
# 在这里
# 是因为
# 便可
# 可以直接
# 建立一个
# 使用这个
# 大家多多
# 往右
# 器里
# 这种方法
# 只要在
# lt
# gt
# pre
# adapter
# private
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
SQL查询语句优化的实用方法总结
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
如何彻底删除建站之星生成的Banner?
Laravel怎么使用artisan命令缓存配置和视图
,交易猫的商品怎么发布到网站上去?
如何在景安云服务器上绑定域名并配置虚拟主机?
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
MySQL查询结果复制到新表的方法(更新、插入)
bing浏览器学术搜索入口_bing学术文献检索地址
如何在建站之星网店版论坛获取技术支持?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
js代码实现下拉菜单【推荐】
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
详解vue.js组件化开发实践
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Laravel如何处理CORS跨域请求?(配置示例)
Laravel如何实现API速率限制?(Rate Limiting教程)
高防服务器:AI智能防御DDoS攻击与数据安全保障
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
如何用好域名打造高点击率的自主建站?
WordPress 子目录安装中正确处理脚本路径的完整指南
微信小程序 配置文件详细介绍
Mybatis 中的insertOrUpdate操作
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何用腾讯建站主机快速创建免费网站?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
浅析上传头像示例及其注意事项
Linux系统命令中screen命令详解
如何确保FTP站点访问权限与数据传输安全?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Linux系统运维自动化项目教程_Ansible批量管理实战
如何在橙子建站上传落地页?操作指南详解
Laravel如何为API生成Swagger或OpenAPI文档
如何为不同团队 ID 动态生成多个非值班状态按钮
JavaScript如何实现倒计时_时间函数如何精确控制
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
如何在建站主机中优化服务器配置?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何用5美元大硬盘VPS安全高效搭建个人网站?
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何在万网ECS上快速搭建专属网站?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】

