3

récemment Google a ajouté à android.support.design.widget.TabItemsupportDesign comme documentation dit:Comment utiliser TabItem par TabLayout dans Android

TabItem est une 'vue' spécial qui vous permet de déclarer les éléments de l'onglet pour un TabLayout dans une mise en page. Cette vue n'est pas réellement ajoutée à TabLayout, c'est juste un mannequin qui permet le réglage du texte, de l'icône et de la mise en page personnalisée d'un élément de l'onglet.

Mais quand j'ajoute TabItems à mon TabLayout:

<android.support.design.widget.TabLayout 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"> 

    <android.support.design.widget.TabItem 
      android:text="@string/tab_text"/> 

    <android.support.design.widget.TabItem 
      android:icon="@drawable/ic_android"/> 

</android.support.design.widget.TabLayout> 

Rien affiché (en fait lieu d'onglets existent mais Icône/Texte non). Est-ce que quelqu'un sait Comment utiliser TabItem à travers xml?

Répondre

1

Basé sur this réponse, TabItem avec tabLayout.setupViewPager ont des conflits et icônes disparaissent. Pour le faire fonctionner, vous devez mettre en œuvre deux méthodes comme suit et éviter d'utiliser setupViewPager méthode:

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { 
      @Override 
      public void onTabSelected(TabLayout.Tab tab) { 
       pager.setCurrentItem(tab.getPosition()); 
      } 

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

      } 

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

      } 
     }); 

pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
       @Override 
       public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

       } 

       @Override 
       public void onPageSelected(int position) { 
        tabLayout.getTabAt(position).select(); 
       } 

       @Override 
       public void onPageScrollStateChanged(int state) { 

       } 
      }); 
+1

Notez que setOnTabSelectedListener est obsolète et que vous devez utiliser addOnTabSelectedListener comme décrit [ici] (http://stackoverflow.com/a/38498882/1476228). – RobertoAllende

0

vous devez définir ces attributs pour les TabItems

android:layout_width 
android:layout_height 

Vive

+0

Je mets cette attrs (en fait, si vous ne les définir comme vous donne l'erreur) – Amir

+0

Hmm..strange.In mon cas, je utilisez un RelativeLayout (peu importe la disposition que vous utilisez) qui contient TabLayout et TabItems. Je mets ces attrs et les icônes et tout s'affiche. J'utilise 23.2.1 bibliothèque de support – SzabK

+0

Pouvez-vous le mettre dans github? – Amir