3

Zuletzt hinzugefügt google android.support.design.widget.TabItem in supportDesign als documentation sagte:Wie verwenden TabItem durch TabLayout in Android

TabItem ist eine spezielle ‚Ansicht‘, die Sie mit der Tabulatortaste Elemente für ein TabLayout innerhalb eines Layouts deklarieren können. Diese Ansicht wird nicht wirklich zu TabLayout hinzugefügt, es ist nur ein Dummy, der die Einstellung eines Textsymbols und eines benutzerdefinierten Layouts einer Registerkarte ermöglicht.

Aber wenn ich hinzufügen TabItems meiner 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> 

Nichts angezeigt (in der Tat anstelle von Tabs existieren aber Icon/Text nicht). Weiß jemand wie man TabItem durch XML verwendet?

Antwort

1

Basierend auf this Antwort, TabItem Set mit tabLayout.setupViewPager Konflikt und Icons verschwinden. Damit es funktioniert, sollten Sie zwei Methoden implementieren wie folgt und vermeiden, mit setupViewPager Methode:

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

Beachten Sie, dass setOnTabSelectedListener veraltet ist und Sie sollten addOnTabSelectedListener verwenden, wie es [hier] (http://stackoverflow.com/a/38498882/1476228) beschrieben wird. – RobertoAllende

0

sollten Sie diese Attribute für die TabItems

android:layout_width 
android:layout_height 

Prost

+0

ich diese attrs gesetzt (in der Tat, wenn man sie nicht gesetzt AS gibt Ihnen Fehler) – Amir

+0

Hmm..strange.In meinem Fall habe ich Verwenden Sie ein RelativeLayout (es spielt keine Rolle, welches Layout Sie verwenden), das die TabLayout- und TabItems enthält. Ich setze diese Attraktionen und die Symbole und alles wird angezeigt. Ich benutze 23.2.1 Support-Bibliothek – SzabK

+0

Kannst du es in Github setzen? – Amir