Замена фрагмента 1 фрагментом 2 из действия во фрагменте 3 в ViewPager - PullRequest
0 голосов
/ 17 мая 2018

Как видно из заголовка, можно ли заменить два фрагмента в третьем, например, нажав кнопку в фрагмент 3 , чтобы заменить фрагмент 1 на фрагмент 2 , а все 3 находятся внутри ViewPager ? Для простоты понимания вот как выглядит мой PagerAdapter:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    int numberOfTabs;

    public SectionsPagerAdapter(FragmentManager fm, int numberOfTabs) {
        super(fm);
        this.numberOfTabs=numberOfTabs;
    }

    @Override
    public Fragment getItem(int position) {
        // getItem is called to instantiate the fragment for the given page.
        // Return a PlaceholderFragment (defined as a static inner class below).
        switch(position){
            case 0:
                CreateEventFragmentPage1 tab1 = new CreateEventFragmentPage1();
                return tab1;
            case 1:
                CreateEventFragmentPage2 tab2 = new CreateEventFragmentPage2();
                return tab2;
            case 2:
                CreateEventFragmentPage3 tab3 = new CreateEventFragmentPage3();
                return tab3;
            default:
                return null;
        }

    }


    @Override
    public int getCount() {
        // Show 3 total pages.
        return numberOfTabs;
    }
}

Любой совет будет высоко оценен.

1 Ответ

0 голосов
/ 17 мая 2018

Поскольку это адаптер FragmentPagerAdapter, поэтому должен быть метод notifyChanged или аналогичный

И я полагаю, что он будет работать как notifyDataSetChanged с Recyclerview

Другая причина этого заключается в том, что окруженные фрагменты тока не полностью уничтожены

Дополнительно переписать метод getItem(int position), чтобы выполнить логику переупорядочения ваших фрагментов

Также попробуйте использовать FragmentStatePagerAdapter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...