2016-02-29 4 views
0

Это ViewPager, ViewPagerAdapter,TabLayout и Fagment1, Fragment2, Fragment3. ViewPager показать 2 фрагмента.Заменить фрагмент внутри ViewPagerAdapter

ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
ViewPagerAdapter mVPAdapter = new ViewPagerAdapter(getSupportFragmentManager()); 
mVPAdapter.addFrag(new Fragment_1(), ""); 
mVPAdapter.addFrag(new Fragment_2(), ""); 
viewPager.setAdapter(mVPAdapter); 
tabLayout = (TabLayout) findViewById(R.id.tabs); 
tabLayout.setupWithViewPager(viewPager); 

Могу ли я заменить Fragment1 на Fragment3 с ViewPagerAdapter?

+0

изменения этого mVPAdapter.addFrag (новый Fragment_2(), ""); - mVPAdapter.addFrag (новый Fragment_3(), ""); –

+0

Мне нужно показать фрагмент2, а затем показать фрагмент3; Могу ли я сделать это с помощью ViewPagerAdapter? – Igor

+0

Здесь этот учебник может помочь в вашей проблеме http://www.pineappslab.com/post/fragments-viewpager/. –

ответ

0

Попробуйте

Fragment fragment_name = new Fragment_3(); 
attachFragment(childFragment, Constant.TAG_FRAGMENT3, true); 

В attachfragment вы замените fragment1 от fragment3. Вы можете использовать булевы varible, чтобы добавить этот фрагмент в backstack

private void attachFragment(Fragment mFragment, String mID, 
           boolean doAddToStack) { 

     mTransaction = mFragmentManager.beginTransaction(); 
     if (getActivity().getSupportFragmentManager().findFragmentById(
       R.id.container) != null) { 

      mTransaction.replace(R.id.container, mFragment, mID); 
      if (doAddToStack) { 
       mTransaction.addToBackStack(mID); 
      } 
     } else { 
      mTransaction.add(R.id.container, mFragment, mID); 

     } 
     mTransaction.commit(); 

    } 
Смежные вопросы