Я работаю над приложением Android с навигационным ящиком и 3 фрагментами. Я показываю и скрываю фрагменты вместо вызова beginTransaction.replace (), потому что мне нужно повторно использовать фрагменты и потому что это делает анимацию навигационного блока намного более плавной.
Однако один из моих фрагментов реализует ViewPager с еще 2 фрагментами - и эти фрагменты не созданы - я думаю, потому что фрагмент невидим? Когда я делаю фрагмент видимым, фрагменты окна просмотра загружаются, но это происходит с задержкой, которую я хотел бы избежать.
Это мой код для загрузки фрагментов.
fm.beginTransaction().add(R.id.fragment_container, dashboardFragment, "dashboard fragment").commit();
fm.beginTransaction().add(R.id.fragment_container, historyFragment, "history fragment").hide(historyFragment).commit();
fm.beginTransaction().add(R.id.fragment_container, settingsFragment, "settings fragment").hide(settingsFragment).commit();
И во фрагменте истории с помощью viewpager я настроил viewpager
HistoryFragmentSectionsPagerAdapter adapter = new HistoryFragmentSectionsPagerAdapter(getFragmentManager());
adapter.addFragment(new HistoryOverviewTabFragment(), "Overview");
adapter.addFragment(new HistoryAdvancedTabFragment(), "Trends");
viewPager.setAdapter(adapter);
viewpager.setCurrentItem(0); // I tried this but it has no effect
Я знаю, что могу это исправить, если сначала покажу свой фрагмент, а затем скрою его, но это действительно неэффективно, и я бы хотел по возможности избегайте этого.
Можно ли как-нибудь лениво загрузить фрагменты в пейджер, пока родительский фрагмент все еще скрыт?