Fragment使用PagerSlidingTabStrip嵌套子Fragment显示问题

第一个fragment,代表着首页。首页又是一个类似tab的fragment,使用viewpager切换着两个fragment。

 1  private void InitViewPager(View parentView) {
 2        mPager = (ViewPager) parentView.findViewById(R.id.vPager);
 3        fragmentsList = new ArrayList<Fragment>();
 4
 5
 6        fragment1 = new SortHotFragment();
 7        fragment2 = new SortNewFragment();
 8
 9
10        fragmentsList.add(fragment1);
11        fragmentsList.add(fragment2);
12
13        mPager.setAdapter(new MyFragmentPagerAdapter(getActivity().getSupportFragmentManager(), fragmentsList));
14        mPager.setCurrentItem(0);
15        mPager.setOnPageChangeListener(new MyOnPageChangeListener());
16  }

一般根据往常的经验,如果要传入fragmentmanager,都是红色字体部分。

但是,这样会导致一个问题:数据丢失。

在fragment切换来回时,其他单个的fragment里面的数据不会丢失,而使用了viewpager的多个fragment切换的fragment会一团漆黑。

解决办法:

将红色字体部分,用getChildFragmentManager() 替换。

mPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), fragmentsList));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
时间: 2024-08-28 17:46:19

Fragment使用PagerSlidingTabStrip嵌套子Fragment显示问题的相关文章

【Fragment精深系列7】Fragment切换优化

一.Fragment+RadioGroup ??在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:然后总感觉切换的时候有些卡顿. 1.以前的代码: radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkI

Android Fragment详解(二):Fragment创建及其生命周期

Fragments的生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生命周期可参考下图: 创建片元(Creating a Fragment) To create a fragment, you must create a subclass of Fragment (or an existing subclass of it). The Fragment class has code that looks a lot like an Activit

ScrollView嵌套子View的getDrawingCache为空的解决方法

ScrollView嵌套子View的getDrawingCache为空的解决方法 问题 将组件的显示布局改为可以滚动的,然后用ScrollView作为了View的父类,发现View的getDrawingCache返回为null了,组件的滚动是必须要实现的,所以探究一下getDrawingCache为空的解决方法. 问题原因 查看日志可以发现 `02-01 14:21:33.512 3461-3461/com.example.sample.job W/View: View too large to

【Fragment精深系列5】fragment findViewById()返回null完全解析

一.引入 ??你是不是经常遇到在fragment中调用findViewById方法寻找fragment布局文件中的控件返回null的现象.我之前也遇到了这个问题,虽然后来解决了,但是心中一直有疑惑,最近有时间停下来,结合别人的解答和自己的思考,对这个问题进行彻底的梳理. 二.使用getActivity().findViewById 1.getActivity的介绍 ??Fragment中有一个getActivity()的方法.返回与Fragment关联的Activity对象(通过该对象可以查找a

安卓fragment跳转activity,fragment跳转fragment,activity跳转fragment

Activity中加载不同的fragment  / Fragment中加载不同的fragment 主Activity中加载(切换)多个fragment(也可以理解为activity跳转fragment)或主fragment中加载(切换)多个fragment Activity布局中要有一个fragment布局空间,比如id名为main_ FrameLayout 写两个fragment类继承自fragment,比如 fragmentaextends Fragment (这个里面加载你的view和写你

详解fragment(一):从源代码看fragment的生命周期

前面讲了那么多xml,我们缓一下,现在讲从代码角度来看fragment的创建. 我们通常会在FragmentActivity中通过如下方法: getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment, tag).commit(); getSupportFragmentManager().beginTransaction().add(R.id.content, fragment, tag).commi

高仿微信主界面:ViewPage+Fragment 不预加载Fragment 也不会销毁Fragment

微信支持下面四个Tab滑动,之前做的demo,遇到两个问题,1:Fragment会预加载,2:创建过的Fragment,来回滑动,会销毁重新创建.今天我这个demo,就要解决这两个问题.第一个问题需要导入一个新的V4包,最后我会提供,ViewPage要设置 mViewPager .setOffscreenPageLimit(0);这样的就能解决预加载的问题.第二个问题:我贴上代码: package com.example.fragmentviewpage; import java.util.Ar

安卓训练-开始-使用 Fragment 构造动态 UI-创建 Fragment

创建 Fragment 上一课 下一课 这节课教你 创建一个 Fragment 类 使用 XML 添加 Fragment 到 Activity 你还需要阅读 Fragments 试试 下载示例 FragmentBasics.zip 你可以认为 fragment 是 activity 的模块化的部分,它有自己的生命周期,接收自己的输入事件,你可以在 activity 的运行过程中把它添加到 activity 或从 activity 中删除它(有点像一个你可以在不同 activity 中使用的"子

[Android]Fragment源码分析(肆) Fragment栈管理

Fragment的栈是Fragment管理颇为出彩的一部分,它跟Activity栈的本质差异除了在数据结构上和逻辑上的不同之外,主要区别还在于: 1.Fragment管理是在进程空间内的 2.Fragment的管理一般情况下是一个Window下进行的. Fragment的管理在一个进程空间内是比较好理解的,因为我们知道Activity的管理其实相对复杂,它的管理是通过IPC调用,IPC的一端是我们的Client,而作为Server的是Ams服务.Activity的管理是基于Window的,而Fr