android viewpager fragment传值,Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题...

前言

之前在做一个Viewpager上面加载多个Fragment时总会实例化已经创建好的Fragmnet对象类似

viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public Fragment getItem(int position) {

switch(position){

case 0:

fragments=new Fragmnet01();

break;

case 1:

fragments=new Fragmnet02();

break;

.....

}

return fragments;

}

@Override

public int getCount() {

return listTabs.size();

}

});

其实仔细想一下,这样是很不合理的,首先你一直实例化对内存是一种浪费另外Viewpager具有预加载性当我们加载某一个Fragmnet时它就会把它的左边和右边都会加载(开头和结尾例外。)所以为了防止重复加载浪费资源,我们可以使用一个对象数组来加载fragment,当每次位置为空的时候我们就可以在该位置上面加载一个布局具体代码

//定义一个对象数组并给定长度

fragments=new MyFragment[listTabs.size()];

viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public Fragment getItem(int position)

{

//在这里判断如果Fragmnet[position]当前页面没有加载的话我们再次在上面加载

if(fragments[position]==null){

//这里只是写一个构造方法把值传到fragment里面

MyFragment my = MyFragment.getInstance(listTabs.get(position).getId());

fragments[position]=my;

}

return fragments[position];

}

@Override

public int getCount() {

return listTabs.size();

}

});

在fragment里面当然你也可以用bundler来传值。

public static MyFragment getInstance(int id){

MyFragment myFragment=new MyFragment();

Bundle bundle=new Bundle();

bundle.putInt("id",id);

myFragment.setArguments(bundle);

return myFragment;

}

以上所述是小编给大家介绍的Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN怎么转载别人的博客

参考:CSDN怎么转载别人的博客 作者:zhongjianblackberry 发布时间:2018-03-06 11:57:59 网址:https://blog.csdn.net/zhongjianblackberry/article/details/79456338 目录转载CSDN博客步骤:Markdown和HTML相关小知识Ma…

青岛西海岸惠普大数据_青岛西海岸新区用好卫星大数据 为城市治理全面赋能...

来源:环球网为推进城市治理数字化程度,提升城市治理的智能化和精细化水平,青岛西海岸新区搭建了人工智能搜索视觉分析平台,以月度更新的频率,汇聚了新区0.5米高分辨率卫星影像数据,通过数据资源共享系统为各…

总结jenkins Android自动打包遇到的坑

一、ndk-build报错 [roothejianlai-jenkins LearnGradle]# ndk-build /usr/local/android-ndk-r8/ndk-build: /usr/local/android-ndk-r8/prebuilt/linux-x86/bin/make: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 解决方法:安装glibc.i6…

微博VS微信,谁更有移动优势

微博、微信,一个是中国互联网的明星,一个是中国互联网的后起之秀,前者出身于中国最大的门户网站新浪,后者出身于中国最大的即时通讯公司腾讯。作为各自公司在移动互联网上的主推产品,两者都背负着公司的巨大期望。那么…

android的热修复,Android热修复原理

热修复框架技术主要有三类,代码修复,资源修复,动态链接库修复。资源修复很多资源修复的框架参考了Instant Run资源修复的原理,所以先了解一下Instant RunInstant RunInstant Run是Android Studio 2.0以后新增的一个运行机制&#…

树莓派的四种登陆方式

参考:树莓派的4种登陆方式 作者:丶PURSUING 发布时间:2021-02-02 09:15:30 网址:https://blog.csdn.net/weixin_44742824/article/details/113524929?spm1001.2014.3001.5502 目录一、HDMI视频线二、串口1.修改sd卡中的系统文件2…

丰收互联蓝牙key怎么开机_ublox收购Rigado的蓝牙模块业务,扩大蓝牙低功耗产品组合...

全球领先的定位与无线通讯技术供应商u-blox 宣布,已与 Rigado签署资产购买协议,收购其蓝牙模块业务。Rigado是商业物联网Edge-as-a-Service(EaaS)边缘即服务网关解决方案的领先供应商,于2015年开始提供通过认证的无线模块。强化蓝牙产品系列此…

字符串类型str方法

首字母大写 temp rttty ret temp.capitalize() print(ret) 内容居中 temp kfkjdfj ret temp.center(21,*) ###内容居中,两边空白处可以用任意符号填充 print(ret) 子序列个数 temp ‘retegg is hh’ ret temp.count(g) #计算字符串中的出现的个数 print(re…

好的编程风格

1。关键字 if, while, for 后有一个空格 2。号之类的双目运算符两侧都有空格 3。后缀运算符和操作数之间不加空格 例如 s.a , foo(argu) , a[i] 4。, 号和 ; 号之后要加空格&#xff0c;例如 foo(argu1, argu2) for (i0; i<20; i) 5。关于双目运算符两侧加空格可以灵活规定&…

android 时间戳 时区,三句话理解时区与时间戳

从不浪费时间的人&#xff0c;没有工夫抱怨时间不够。 —— 杰弗逊第一句话&#xff1a;时间戳时间不分东西南北、在地球的每一个角落都是相同的。他们都有一个相同的名字&#xff0c;叫时间戳。时间戳 指的就是Unix时间戳(Unix timestamp)。它也被称为Unix时间(Unix time)、PO…

windows下的diskpart指令彻底格式化清除U盘

参考&#xff1a;windows下的diskpart指令修复U盘分区 作者&#xff1a;丶PURSUING 发布时间&#xff1a;2021-02-02 09:38:55 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/113537038?spm1001.2014.3001.5501 参考&#xff1a;原文链接 作者&…

简述控制反转ioc_讲一下你理解的 DI 、IoC、DIP ?

作者 | 木小楠链接 |cnblogs.com/liuhaorain/p/3747470.html摘要面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中&#xff0c;OOD有一个重要的思想那就是依赖倒置原则(DIP)&#xff0c;并由此引申出IoC、DI以及Ioc容器等概念。本文我们将一起学习这些概…

Zimbra高级应用之-双向证书认证(一)

使用zimbra作为企业邮件服务器的公司&#xff0c;可能会遇到这样一种情况&#xff1a;使用用户名密码的传统认证方法&#xff0c;经常会发现有人恶意登录用户邮箱&#xff0c;采取暴力 破解&#xff0c;不断尝试登录密码。同时&#xff0c;简单密码组合很轻易被破解。从而在未经…

Redis学习与实战之字符串命令

字符串命令 一、基本字符串命令 1.基本字符串操作命令(设置、取值、删除、取长度) 命令名称命令功能执行时间复杂度Set为指定的一个键设置对应的值&#xff0c;如果已经存在&#xff0c;则直接覆盖原来的值O(1)Mset对多个键设置对应的值&#xff0c;如果值已经存在&#xff0c;…

html模糊遮罩层磨砂玻璃,常见的PPT背景:如何设计PPT背景?

第一种&#xff1a;纯色背景纯色背景分为两类&#xff0c;一种为黑白灰等“无色”背景&#xff0c;另一种就是彩色背景。黑白灰等无色背景&#xff0c;是安全的背景&#xff0c;容易配色&#xff0c;所以在使用上最多&#xff0c;如果没有色彩基础的朋友&#xff0c;建议还是用…

linux分文件编程、静态库与动态库

参考&#xff1a;linux静态库与动态库编程 作者&#xff1a;丶PURSUING 发布时间&#xff1a;2021-02-02 16:51:49 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/113539449?spm1001.2014.3001.5501 目录一、分文件编程的引入优点实现二、库的概念什…

十万个为什么儿童版_《虹猫蓝兔十万个为什么》上架爱奇艺奇巴布绘本馆

虹猫蓝兔绘本《虹猫蓝兔十万个为什么》上架爱奇艺奇巴布绘本馆全套专区。《虹猫蓝兔海底历险记》在爱奇艺PC端首页推广。红网时刻6月11日讯(记者 胡邦建 )今日&#xff0c;记者从湖南漫联卡通文化传媒有限公司获悉&#xff0c;该公司旗下的虹猫蓝兔绘本《虹猫蓝兔十万个为什么》…

获取${}中的值? 比如说var a=${date },无法取出date中的值

https://zhidao.baidu.com/question/2079297372778181268.html 转载于:https://www.cnblogs.com/DixinFan/p/9221953.html

GNU make manual 翻译( 一百四十九)

继续翻译 5.7.4 The --print-directory Option ------------------------------------If you use several levels of recursive make invocations, the -w or --print-directory option can make the output a lot easier to understand by showing each directory as make sta…

创文html5作品,【《创文故事》纪录短片入围作品展播之七】引路人

剧情简介&#xff1a;他只是一名普普通通的教师&#xff0c;却每天风雨无阻地为学生引导起上学放学的路。而这一切&#xff0c;没有一分钱&#xff0c;也没有一分利。他以身作则&#xff0c;用自己的行动感染了周围的人&#xff1a;从一开始的几个人&#xff0c;发展到现在几百…