Viewpager中的片段在重新访问时不会显示

问题描述 投票:0回答:1

我的活动中有两个片段。一个包含一个viewpager,其中也有两个片段。一切正常,但问题是当我从另一个片段重新访问包含viewpager的片段时,从不显示viewpager中的子片段。

这是包含viewpager的片段,MainHistoryFragment.java

public class MainHistoryFragment extends Fragment {


View view;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    view = inflater.inflate(R.layout.activity_hist, container, false);


    return view;
}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getActivity(), getActivity().getSupportFragmentManager());
    ViewPager viewPager = view.findViewById(R.id.view_pager);
    viewPager.setAdapter(sectionsPagerAdapter);
    TabLayout tabs = view.findViewById(R.id.tabs);
    tabs.setupWithViewPager(viewPager);
    tabs.getTabAt(0).setIcon(android.R.drawable.ic_dialog_email);
    tabs.getTabAt(1).setIcon(android.R.drawable.ic_menu_compass);
}

}

这是FragmentPagerAdapter,SectionsPagerAdapter]的子类。

public class SectionsPagerAdapter extends FragmentPagerAdapter {

@StringRes
private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};
private static final int totalTabs = 2;
private final Context mContext;

public SectionsPagerAdapter(Context context, FragmentManager fm) {
    super(fm);
    mContext = context;
}

@Override
public Fragment getItem(int position) {
    // getItem is called to instantiate the fragment for the given page.
    switch (++position){
        case 1:
            return new HistoryFragment();
        case 2:
            return new BookmarkFragment();
            default:
                return null;
    }
}

@Nullable
@Override
public CharSequence getPageTitle(int position) {
    return mContext.getResources().getString(TAB_TITLES[position]);
}

@Override
public int getCount() {
    return totalTabs;
}

}

[我注意到,SectionsPagerAdapter的getItem()方法在重新访问后再也不会被调用。请问如何在重新访问后在viewpager中显示片段?

我的活动中有两个片段。一个包含一个viewpager,其中也有两个片段。一切正常,但问题是当我从...

android android-fragments android-viewpager fragment fragmentpageradapter
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.