Fragment嵌套ViewPager切换后数据消失ViewPager空白问题

在fragment中使用viewpager+fragment时,fragment页面消失的问题 今天要做一个类似知乎首页的tab切换页面,本来以为很容易,因为以前也写过,不过以前都是在activity中写的,一直没遇到什么问题这次换了fragment作为载体之后发现了一个问题在A fragment中使用TabLayout和viwepager 然后再添加三个fragment进去,相当于A fragment里面的再嵌套三个同级的fragment. 出现了第一次滑动全部正常,来回滑动则只有中间的 阅读详情

原文地址:http://blog.youkuaiyun.com/taoolee/article/details/50633619


先描述一下现象 
如图这里写图片描述

解决后如图 
这里写图片描述

之前先在网上找了很多的解决办法,有的网友说要继承FragmentStatePagerAdapter替换掉FragmentPagerAdapter我试了试没管用。后来在解决如下 
此方法为初始化ViewPager

private void init() {
        fragmentsList = new ArrayList();
        manager = getFragmentManager();
        fragmentsList = new ArrayList<Fragment>();
        apply = new ApplyStatusFrag();
        audit = new AuditStatusFrag();
        fragmentsList.add(apply);
        fragmentsList.add(audit);

        adapter = new MyFragPagerAdapter(getChildFragmentManager(), fragmentsList);//之前为getFragmentManager;;;;切换fragment后再次回到上一个fragment数据消失
        mPager.setCurrentItem(0);
        mPager.setAdapter(adapter);
        radioGroup_status.check(R.id.RdBtn_apply);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

getChildFragmentManager替换掉getFragmentManager问题就解决了。具体的原理是什么,有待学习。 
getFragmentManager到的是activity对所包含fragment的Manager,而如果是fragment嵌套fragment,那么就需要利用getChildFragmentManager()了。 
getFragmentManager()是所在fragment 父容器的碎片管理, 
getChildFragmentManager()是在fragment 里面子容器的碎片管理。 
mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity().getSupportFragmentManager());

在Fragment里面嵌套Fragment 的话,不要用上面的那句。。。会在ViewPager中出现。有些Fragment 不会加载的情况。。。既ViewPager 加载 Fragment 空白页的情况。。。。

所以 Fragment里面嵌套Fragment 的话:一定要用getChildFragmentManager();

mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());


特此Mark


一步步用懒加载Fragment实现ViewPager多级嵌套下的Fragment的显示与隐藏监听 一.需求背景 由于本猿在一个视频app开发组,有一个页面曝光埋点需求,用来统计界面曝光率与点击率,曝光埋点目的是运营为了统计节目曝光与被点击播放的比例,所以为了实现精准的统计数据,需要每个页面展示出来时才进行曝光数据上传,同时用户切换页面之后需要重新曝光,那么就需要监听到页面的显示与隐藏状态,而该视频app架构首页采用ViewPager与Fragment的多级嵌套,外层ViewPager采用Fr... 阅读详情

相关推荐

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

VBA学习笔记6:将多个工作表中满足条件的数据汇总到同一个工作表

weixin_45355881的博客 4708

fragment里面嵌套ViewPager,解决切换fragment了之后ViewPager中的内容消失的问题

fragmen+viewpager fragmen嵌套viewpager

jiahaodong的博客 2670

基于Python的携程景点评价爬虫与情感评分分析

摘要: 本项目通过Python技术栈实现携程景点评论的情感分析系统,包含数据爬取、文本预处理、情感评分和可视化分析全流程。使用requests抓取评论接口,jieba进行中文分词,SnowNLP计算情感得分(0-1),并通过词云、情感分布图呈现结果。典型分析显示72%评论为正面,负面反馈多涉及"排队久""票价贵"等问题。系统可辅助景点口碑管理,扩展方向包括多景点对比、BERT模型优化等。项目强调需遵守爬虫伦理,控制请求频率,适用于非商业用途的旅游数据分析。(150字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 978

使用ViewPager + FragmentStatePagerAdapter 切换后页面数据加载空白或者丢失

开头直接上结论!!!!!! 第一种原因: onCreateView中没有做view持久化 viewpage切换的时候Fragment的生命周期会重新走一遍,从头走到尾那种~如果你没有做持久化第一次加载的view等于你上次获取的数据永远都是丢失的。 //关键点一:持久化,初始化只能做一次 if (rootView == null) { rootView = inf...

m0_37261093的博客 3928

mtk-drm初始化

mtk-drm初始化走读

zhexingsunba的博客 4935

将雷达连接到树莓派的串口

dev/ttyAMA0 是树莓派的主要 UART(用于 GPIO 引脚 8 (TXD) 和 10 (RXD))。通常,树莓派使用 GPIO 引脚 8 (TXD) 和 10 (RXD) 进行串口通信。树莓派上通常有两个串口:/dev/ttyS0 和 /dev/ttyAMA0。你需要确认雷达的 TX 和 RX 引脚,并与树莓派的对应引脚连接。VCC(电源)连接到树莓派的 3.3V 或 5V(根据雷达的要求)MR(Receive)连接到树莓派的 GPIO 8 (TXD)GND(地)连接到树莓派的 GND。

qq_45943628的博客 1466

ViewPager fragment做页面切换是数据消失的问题解决

页面数据来回切换时,数据消失 添加 MyAdapter adapter = new MyAdapter(getSupportFragmentManager(), tabs, fragments); vpContent.setAdapter(adapter); vpContent.setOffscreenPageLimit(2); 主要是 ...

点滴之路的博客 2116

【经验&技巧】DDR仿真中的挑战与解决方案

由于DDR的数据总线具备双向数据传输功能,需要对读写模式进行独立仿真环境的创建,并且分为连续和突发模式,再加之有单端和差分信号、有数据总线和地址总线,需要在数据传输过程中额外注意串扰的影响,并选择合适的驱动和负载以找寻设计裕量与串扰强度之间的平衡,因此,实际操作步骤和分析过程还是较为繁琐耗时的,需要设计者具有足够的耐心。

一只豌豆象的博客 1643

Fragment嵌套ViewPager切换后数据消失ViewPager第二个空白问题

困扰我很久很久的问题一行代码简单解决吧直接上码 MyFragPagerAdapter adapter = new MyFragPagerAdapter(getChildFragmentManager(), fragmentsList);//之前为getFragmentManager;;;;切换fragment后再次回到上一个fragment数据消失 getChildFragmentM

乡下的事业 608

数字电路与逻辑设计实验二 组合逻辑电路

1.组合逻辑电路功能测试 (1)用 2 片 74LS00 组成图 2.1 所示逻辑电路。为便于接线和检查,在图中要注明 芯片编号及各引脚对应的编号。 (2)图中 A、B、C 接逻辑开关,Y1,Y2 接发光管电平显示。 (3)按表 2.3 要求,改变 A、B、C 输入的状态,填表并写出 Y1,Y2 的逻辑表达式。 (4)将运算结果与实验结果进行比较。 2.测试用异或门(74LS86)和与非门组成的半加器的逻辑功能。 根据半加器的逻辑表达式可知,半加 器 Y 是 A、B 的异或,而进位 Z 是 A

欢迎交流学习心得 1280

ESP32开发进阶:1.接入文心一言

ESP32开发进阶:接入文心一言大模型,串口对话

qq_53529450的博客 1432

Android:fragment中嵌套viewpager,vierpager中有多个fragment

Fragment放ViewPager,ViewPager里面是fragment。第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失。 private void InitViewPager(View parentView) { mPager = (ViewPager) parentView.findViewById(R.id.vPager);

BAOLIANG196的博客 2811

基于模型上下文协议(MCP)的可插拔式临床AI工具链Clinical DS研究(下)

本研究深入探讨了医疗AI在临床落地中的核心矛盾,即如何从“模型能答”迈向“系统可信、可用、可追溯”。为解决此矛盾,我们创新性地提出并详细设计实现了一套基于模型上下文协议(MCP)的**“可插拔式临床AI工具链”**架构。通过将复杂的医疗AI系统解构为Host、MCP Server和标准协议三层,并将各类能力(临床决策、影像分析、合规审计)封装为标准的、可独立演进的Server,我们成功地构建了一个模块化、高内聚、低耦合的系统。

AllenLV的博客 1380

Fragment嵌套ViewPager,viewpager切换的时候,手机出现白屏

先说下我的页面,首页HomeFragment下是两个按钮与ViewPager的联动,viewPager里又再次使用Fragment,分别为FragmentA和FragmentB,从A滑动到B,再划回去,A消失闪一下再出现,A没有重新加载,并不是被回收的为题,搜索了答案说是要用getChildFragmentManager,然而并没有什么X用,这个问题怎么出现的还没找到? 解决办法,我是把Frag

jimbo_xiaohei的博客 2740

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Fragment中嵌套PagerSlidingTabStrip+ViewPager,ViewPager中嵌套Fragmentc出现的问题

提出问题:Fragment中放置PagerSlidingTabStrip+ViewPager,ViewPager中有多个Fragment进行滑动切换。当第一层Fragment进行切换时,ViewPager消失。 解决方法: adapter = new MyPagerAdapter(getFragmentManager());替换为 adapter = new OrderFragmentAda

拂过琴弦的风的专栏 803

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Viewpager+Fragment+GridView 滑动切换时卡顿解决..

使用viewpager切换fragment时,发现有卡顿现象 在fragment onCreateView 设置log打印 发现onCreateView 重复调用 ..加了判断 if(view ==null)重新加载0.0  /** * 初始化模块 */ @Override public View onCreateView(final LayoutInflater inf

baidu_15079577的博客 3161

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android ViewPager2 + FragmentStateAdapter 的使用以及问题

主要讲述了viewPage2嵌套使用过程中的一些问题以及导致这些问题的原因,总结起来无非以下几点: - viewPage2销毁fragment后依旧会持有其对象信息,并标记在adapter中的mFragments中,在后续复现时不会再进行对象的创建 - 将Binding设置成null并不一定会导致viewPage2的重绘,其依旧可能保留自己原始数据。 - viewPape2在进行setAdapter方法的过程中会将自己持有的fragment对象标记信息设置到FragmentStateA

zyppxx的博客 7885

fragment中嵌套fragment时出现空白页问题解决

<div class="markdown_views"><p>先描述一下现象 <br> 如图解决后如图 之前先在网上找了很多的解决办法,有的网友说要继承FragmentStatePagerAdapter替换掉FragmentPagerAdapter我试了试没管用。后来在解决如下 此方法为初始化ViewPagerprivate void init() { fragmentsList

insert的博客 4016

Fragment嵌套Viewpager嵌套Fragment,切换后数据不见了解决方案....

第一次,画图,画着画着自己晕了.... 说一下吧,就是我们一般的APP都是四个底部导航,上面是四个Fragment,而Fragment是由Viewpager管理的.有的APP,Fragment里面嵌套着fragment.当我运行APP的时候,此时按钮1是选中状态,此时Fragment显示正常,当我切换底部导航时,再次切换按钮1时,数据没有了..... 解决方案: @Override pr

Android_Object的博客 2458

Fragment嵌套注意问题

现象:在子 Fragment中加入ViewPager后,切换时ViewPager数据消失出现空白。解决办法:getChildFragmentManager替换掉getFragmentManager 如下: ViewpagerAdapter adapter = new ViewpagerAdapter(getChildFragmentManager());getFragmentManager()是

Tectool的博客 607

Fragment在ViewPager中布局文件丢失

现在主流的界面都是一个Activity中镶嵌三到四个Fragment,然后在这些Fragment中再镶嵌ViewPager,为了代码条理清晰,我们在ViewPager中存放的是Fragment而不是View。正常情况我们在ViewPager中嵌套View是没有问题的,但是再次嵌套Fragment就会出现布局文件丢失,只在第一次创建的时候可以看到,等切换了页面就变成空的了。 这是因为我们拿到的Fr

lixiaoshuai_91的博客 703

Viewpager里添加Fragment,Fragment里面添加一个Viewpager

在Viewpager里添加了3个Fragment,在第一个Fragment中再添加一个Viewpager进行广告图片轮询,但是问题就来的,当切换到第三个fragment的时候,第一个Fragment里Viewpager的图片看不见了,但是其他数据还完好无缺,锁屏再解锁图片又回来了,这是什么情况???求大神!!!

shuxuefu1432的博客 645

ViewPager+ViewPager_Fragment+切换冲突

1>Fragment放ViewPager,ViewPager里面是fragment。第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失 解决办法 viewPager.setAdapter(new PageFragmentadapter (getChildFragmentManager(), fragments)); 管理器副...

zzf0521的博客 564
上一篇: Android Handler 避免内存泄漏的用法总结
下一篇: 深入浅出sip协议
dodod2012
博客等级 码龄15年 244粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值