Good day! I use the inside element [1] of the ViewPager element, which itself contains two more tab fragments. When you first start everything looks great and works. I do not turn off the application, I launch the creation of fragment [1] again with ViewPager. This fragment is created, and for fragments inside the OnCreateView method is not called and they remain empty.

fragment call [1] with ViewPager: this.getSupportFragmentManager().beginTransaction().replace(R.id.frame_container, new CallsAndSmsInformationFragment()).commit();

Fragment [1]: public class CallsAndSmsInformationFragment extends Fragment {

 View view; private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; CallsFragment cfragment = new CallsFragment(); SmsFragment sfragment = new SmsFragment(); @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_callsandsms_information,null); setHasOptionsMenu(true); toolbar = (Toolbar) view.findViewById(R.id.toolbar); viewPager = (ViewPager) view.findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) view.findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); return view; } @Override public void onDestroy() { cfragment.onDestroy(); sfragment.onDestroy(); super.onDestroy(); } @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDetach() { super.onDetach(); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager()); adapter.addFragment(cfragment, "Звонки"); adapter.addFragment(sfragment, "SMS"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { // return null; return mFragmentTitleList.get(position); } } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); inflater.inflate(R.menu.action_bar_fragment_share, menu); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { return true; } 

} `

I will be glad to any tips on this!

    1 answer 1

    The problem was using the FragmentPagerAdapter. It stores all views and does not delete them. You need to use the FragmentStatePagerAdapter.