2015-08-14 15 views

Antwort

17

dieses CustomTabLayout Versuchen

public class CustomTabLayout extends TabLayout { 
    public CustomTabLayout(Context context) { 
     super(context); 
    } 

    public CustomTabLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public CustomTabLayout(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    public void setTabsFromPagerAdapter(@NonNull PagerAdapter adapter) { 
      Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Medium.ttf"); 

     this.removeAllTabs(); 

     ViewGroup slidingTabStrip = (ViewGroup) getChildAt(0); 

     for (int i = 0, count = adapter.getCount(); i < count; i++) { 
      Tab tab = this.newTab(); 
      this.addTab(tab.setText(adapter.getPageTitle(i))); 
      AppCompatTextView view = (AppCompatTextView) ((ViewGroup)slidingTabStrip.getChildAt(i)).getChildAt(1); 
      view.setTypeface(typeface, Typeface.NORMAL); 
     } 
    } 
} 
+2

seit 23.2 .0 update, das funktioniert nicht mehr :( – ClarkXP

25

Ab 23.2.0, veraltet setTabsFromPagerAdapter wurde jedoch eine modifizierte Version von Andreyua ‚s Antwort verwenden Sie setupWithViewPager stattdessen verwenden können.

@Override 
public void setupWithViewPager(ViewPager viewPager) 
{ 
    super.setupWithViewPager(viewPager); 

    if (mTypeface != null) 
    { 
     this.removeAllTabs(); 

     ViewGroup slidingTabStrip = (ViewGroup) getChildAt(0); 

     PagerAdapter adapter = viewPager.getAdapter(); 

     for (int i = 0, count = adapter.getCount(); i < count; i++) 
     { 
      Tab tab = this.newTab(); 
      this.addTab(tab.setText(adapter.getPageTitle(i))); 
      AppCompatTextView view = (AppCompatTextView) ((ViewGroup) slidingTabStrip.getChildAt(i)).getChildAt(1); 
      view.setTypeface(mTypeface, Typeface.NORMAL); 
     } 
    } 
} 

Alle Kredit geht an Andreyua für ihren ursprünglichen Code-Schnipsel mit einer kleinen Änderung.

Leider habe ich nicht genug Ruf Kommentare zu machen, oder ich würde direkt reagiert haben :)

+1

sehr sehr nett. Danke :) – hqt

1

mit Android-Support-Bibliothek 26.2.0 Sie die Schriftart im Stil angeben

<style name="TabLayout" parent="Widget.Design.TabLayout"> 
    <item name="tabTextAppearance">@style/TabText</item> 
    <item name="tabSelectedTextColor">@color/white</item> 
    <item name="tabIndicatorColor">@color/white</item> 

</style> 

<style name="TabText" parent="TextAppearance.Design.Tab"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:textColor">@color/lite</item> 
    <!--Here below--> 
    <item name="android:fontFamily">@font/gotham_medium</item> 
</style> 
Verwandte Themen