Fragment使用PagerSlidingTabStrip嵌套子Fragment顯示問題,pagerslidingtabstrip
第一個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());