如何在Android中更改MaterialTabHost中的文本字体?

时间:2016-03-14 13:14:10

标签: android android-fragments tabs android-viewpager android-tabhost

我正在使用MaterialTabHost显示标签。我想在onTabSelected时更改MaterialTabHost的字体。我试图得到相同的textview。但是无法弄明白。我提到https://github.com/neokree/MaterialTabs。 任何帮助都会得到满足。

这是我的XML。

                    <!-- for Text Tabs -->
                    <it.neokree.materialtabs.MaterialTabHost
                        android:id="@+id/materialTabHost_MainActivity"
                        android:layout_width="match_parent"
                        android:layout_height="48dp"
                        android:animateLayoutChanges="false"
                        app:accentColor="@color/white"
                        app:primaryColor="@color/main_blue_light"
                        app:textColor="@color/white"

                        />

那么我们如何更改字体?

1 个答案:

答案 0 :(得分:0)

这是我在创建时将文字字体更改为标签的方式:

Typeface fontRobotoRegular = Typeface.createFromAsset(getAssets(),"font/RobotoCondensed-Regular.ttf");
MaterialTab tab = new MaterialTab(getApplicationContext(), false);
View tabView = tab.getView();
TextView text = (TextView) tabView.findViewById(R.id.text);
tab.setText(pagerAdapter.getPageTitle(i));
text.setTypeface(fontRobotoRegular);
tab.setTabListener(this);
tabHost.addTab(tab);

因此,如果您想在选中标签时更改字体,您可以在ViewPager的onPageSelected上执行以下操作:

public void onPageSelected(int position) {
    ...
    Typeface fontBold = Typeface.createFromAsset(getAssets(), "font/RobotoCondensed-Bold.ttf");
    TextView text = (TextView) tabs.getCurrentTab().getView().findViewById(R.id.text);
    text.setTypeface(fontBold);
    ...
}