2016-09-13 4 views
-2

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

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
     tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.scene_tab_selector)); 
     tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.my_scene_tab_selector)); 
     tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.conversation_tab_selector)); 
     tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.notification_tab_selector)); 
     tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.more_tab_selector)); 
     tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

     final ViewPager viewPager = (ViewPager) findViewById(R.id.pager); 
     final PagerAdaptor adapter = new PagerAdaptor 
       (getSupportFragmentManager(), tabLayout.getTabCount()); 
     viewPager.setAdapter(adapter); 
     viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout)); 
     tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       viewPager.setCurrentItem(tab.getPosition()); 
       tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); 
       if(tab.getPosition()==4) 
       { 
//     pageTitleLabel.setText("My Profile"); 
       } 
      } 

      @Override 
      public void onTabUnselected(TabLayout.Tab tab) { 
       tab.getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN); 

      } 

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


      } 
     }); 

Мой PagerAdaptor выглядит следующим образом

public class PagerAdaptor extends FragmentStatePagerAdapter { 
    int mNumOfTabs; 


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

    } 

    @Override 
    public Fragment getItem(int position) { 

     switch (position) { 
      case 0: 
       Tab1ContainerFragment tab1 = new Tab1ContainerFragment(); 
       return tab1; 
      case 1: 
       MyCuddllFragment tab2 = new MyCuddllFragment(); 
       return tab2; 
      case 2: 
//    CuddllConversationFragment tab3 = new CuddllConversationFragment(); 
       ConversationFragment conversationFragment = new ConversationFragment(); 
       return conversationFragment; 

      case 3: 
//    CuddllNotificationsFragment tab4 = new CuddllNotificationsFragment(); 
       Tab4ContainerFragment notificationPageFragment = new Tab4ContainerFragment(); 
       return notificationPageFragment; 

      case 4: 
       MyProfileFragment tab5 = new MyProfileFragment(); 
       return tab5; 

      default: 
       return null; 
     } 
    } 

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



} 
+0

Пожалуйста, вы можете сказать, что вы пробовали до сих пор? Также вы можете упомянуть о проблемах, с которыми вы сталкиваетесь при реализации, как указано выше. –

+0

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

+0

Поделитесь этим кодом, и мы можем помочь вам исправить его. –

ответ

0
public void onTabSelected(TabLayout.Tab tab) { 

      tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN); 
      if(tab.getPosition()==0) 
      { 
       viewpager.setCurrentItem(0); 
      }else if(tab.getPosition()==1) 
      { 
       viewpager.setCurrentItem(1); 
      }else if(tab.getPosition()==2) 
      { 
       viewpager.setCurrentItem(2); 
      }else if(tab.getPosition()==3) 
      { 
       viewpager.setCurrentItem(3); 
      } 


     } 
+0

Это не помогает мне добраться до первой страницы вкладки. –

+0

можно связаться с нами на facebook –

+0

@VinayakMishra Я сделал редактирование. Попробуй. Жаль, что я слишком устал, когда писал это. –

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