0

Ich habe Kalligraphie verwendet, um meine App Schriftart anpassen ... meine App enthält android.support.design.widget.TabLayout ... Fonts meiner App geändert und es funktioniert außer TabLayout Titel und die Tab-Titel in TabLayout verwenden die Geräte-Schriftart anstelle der benutzerdefinierten Schriftart. Registerkarten haben Text und Symbol. Ich habe mFragmentTitleList Array für Titel und tabIcons Array ... habe ich versucht, Thema und Stil in der Art und Weise zu verwenden, erklärt hier: calligraphy aber keiner von ihnen arbeitete ...wie benutzerdefinierte Schriftart für android.support.design.widget.TabLayout mit Kalligraphie

Antwort

0

Antwort ist benutzerdefinierte Ansicht zu verwenden .. .i've angewendet, um eine benutzerdefinierte XML-Layout für jede Registerkarte ... um dies zu erreichen, sollte iterieren alle TabLayout.Tabs nach der gleitenden Laschen an den Pager Befestigung:

// Get the ViewPager and set it's PagerAdapter so that it can display items 
    ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); 
    MyFragmentPagerAdapter pagerAdapter = 
     new MyFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this); 
    viewPager.setAdapter(pagerAdapter); 

    // Give the TabLayout the ViewPager 
    TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); 
    tabLayout.setupWithViewPager(viewPager); 

    // Iterate over all tabs and set the custom view 
    for (int i = 0; i < tabLayout.getTabCount(); i++) { 
     TabLayout.Tab tab = tabLayout.getTabAt(i); 
     tab.setCustomView(pagerAdapter.getTabView(i)); 
    } 

nächstes sollten wir die getTabView hinzufügen (position) zu der MyFragmentPagerAdapter-Klasse:

public class MyFragmentPagerAdapter extends FragmentPagerAdapter { 
private String tabTitles[] = new String[] { "Tab1", "Tab2","Tab3" }; 
private int[] tabIcons = { 
     R.drawable.ic_one, 
     R.drawable.ic_two, 
     R.drawable.ic_three 
}; 

public View getTabView(int position) { 
    // Given you have a custom layout in `res/layout/custom_tab.xml` with a TextView and ImageView 
    View view= LayoutInflater.from(context).inflate(R.layout.custom_tab, null); 
    TextView textView= (TextView) view.findViewById(R.id.textView); 
    textView.setText(getPageTitle(position)); 
    ImageView imageView = (ImageView) view.findViewById(R.id.imgView); 
    imageView .setImageResource(tabIcons[position]); 
    return view; 
} 

}

und dies ist das Layout für benutzerdefinierte Ansicht:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/imageView" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="New Text" 
    android:gravity="center" 
    android:textColor="@drawable/sel_tab_text" 
    android:id="@+id/textView" /> 

Verwandte Themen