Android Создание фрагмента, как если бы он был видимым / создавал объекты в скрытом ViewPager - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю над приложением 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

Я знаю, что могу это исправить, если сначала покажу свой фрагмент, а затем скрою его, но это действительно неэффективно, и я бы хотел по возможности избегайте этого.

Можно ли как-нибудь лениво загрузить фрагменты в пейджер, пока родительский фрагмент все еще скрыт?

...