我有ProductFragment它位于TabLayout和ViewPage
片段内容(fragment_product.xml):
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:ddIndicatorColor="@color/colorArrow"
app:ddAnimatedIndicator="lineMove"
app:ddIndicatorHeight="3dp"
app:tabBackground="@color/colorPrimary"/>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/tab_layout"
android:id="@+id/viewPager"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true">
</android.support.v4.view.ViewPager>
在ProductFragment,在方法中OnStart,我将项目(3 个片段)添加到ViewPage
方法本身OnStart
@Override
public void onStart() {
super.onStart();
getActivity().setTitle(product.getName());
aboutTabFragment = new AboutTabFragment();
optionsTabFragment = new OptionsTabFragment();
reviewsTabFragment = new ReviewsTabFragment();
viewPager = (ViewPager) getActivity().findViewById(R.id.viewPager);
viewPagerAdapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
tabLayout = (TabLayout) getActivity().findViewById(R.id.tab_layout);
viewPagerAdapter.addFragments(aboutTabFragment,getString(R.string.about_product_text));
viewPagerAdapter.addFragments(optionsTabFragment,getString(R.string.optons_product_text));
viewPagerAdapter.addFragments(reviewsTabFragment,getString(R.string.reviews_product_text));
viewPager.setAdapter(viewPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
}
没有什么特别之处,片段,几个文本字段,仅此而已AboutTabFragment。OptionsTabFragmentReviewsTabFragment
现在的问题是:当在片段ProductFragment中调用片段的生命周期终止方法时onPause-> onStop..etc。until onDetachin nested fragments 甚至没有被调用onPause,因此,当重新打开ProductFragment生命周期开始的方法时,in nested fragments 不会被调用。
PS 我试图onDestroy从父级调用嵌套片段的方法ProductFragment,它仍然没有帮助。
整整折腾了5个小时,问题竟然出在ViewPageAdapter初始化那一行
替换为