@Nubbin

Viewpager загружает все фрагменты?

Доброе утро, ребята уже день ломаю голову и никак не могу понять в чем проблема.
Внизу я добавил код, этот когда загружает все фрагменты сразу, а я хочу чтобы было так: Открылось приложение загружаются данные только из "OneFragment" потом пролистал и загружаются из "TwoFragment".

Подскажите да как это сделать?

PagerAdapter.java
public class PagerAdapter extends FragmentStatePagerAdapter {
    int mNumOfTabs;

    public PagerAdapter(FragmentManager fm, int NumOfTabs) {
        super(fm);
        this.mNumOfTabs = NumOfTabs;
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
            case 0:
                OneFragment tab1 = new OneFragment();
                return tab1;
            case 1:
                TwoFragment tab2 = new TwoFragment();
                return tab2;
            default:
               return null;
        }
    }

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


TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        tabLayout.addTab(tabLayout.newTab().setText("One"));
        tabLayout.addTab(tabLayout.newTab().setText("Two"));

        final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        final PagerAdapter adapter = new PagerAdapter
                (getSupportFragmentManager(), tabLayout.getTabCount());
        viewPager.setAdapter(adapter);
        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
        tabLayout.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                super.onTabSelected(tab);
                viewPager.setCurrentItem(tab.getPosition(), true);
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                super.onTabUnselected(tab);
                Log.d("fragmentpage", String.valueOf(tab.getPosition()));
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
  • Вопрос задан
  • 300 просмотров
Пригласить эксперта
Ответы на вопрос 1
@YuryBorodkin
Android dev
по умолчанию пэйджер создвет и хранит 3 фрамента, который перед юзером, один до, один после.
это поведение можно изменить сделав setOffscreenPageLimit(int num)
но, я полагаю интерес не праздный? хочешь поймать событие, когда фрагмен появляется перед пользователем?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы