Как изменить шрифт PagerTabStrip
Я использую ViewPager с PagerTabStrip, и мне нужно установить пользовательские шрифты (typeface)
, но нет .setTypeFace
функция для PagerTabStrip!
Вот мой XML-код:
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/pagerTabStrip"
android:layout_gravity="top"
android:background="#FF0000"
android:textColor="#FFFFFF" />
</android.support.v4.view.ViewPager>
По этой ссылке я нашел решение, которое может решить мою проблему.
Получите дочерние представления PagerTabStrip и проверьте, является ли это экземпляром TextView. Если это так, установите гарнитуру:
for (int i = 0; i < pagerTabStrip.getChildCount(); ++i) {
View nextChild = pagerTabStrip.getChildAt(i);
if (nextChild instanceof TextView) {
TextView textViewToConvert = (TextView) nextChild;
textViewToConvert.setTypeface(PUT_TYPEFACE_HERE)
}
}
Но я не понимаю, что это значит.
Мой макет:
Я хочу изменить вкладку заголовка на другой стиль шрифта, как показано ниже:
3 ответа
Вам нужно создать стиль для текста, а затем использовать атрибут android:textAppearance...
Что-то вроде этого:
<style name="PagerTabStripText">
<item name="android:textStyle">italic</item>
</style>
Ваш PagerTabStrip XML будет выглядеть так:
<android.support.v4.view.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/pagerTabStrip"
android:layout_gravity="top"
android:background="#FF0000"
android:textColor="#FFFFFF"
android:textAppearance="@style/PagerTabStripText" />
Вы можете поместить font.ttf в assets/fonts/ folder и получить экземпляр шрифта
Typeface fontTypeFace= Typeface.createFromAsset(getContext().getAssets(),
"fonts/font.ttf");
for (int i = 0; i < pagerTabStrip.getChildCount(); ++i) {
View nextChild = pagerTabStrip.getChildAt(i);
if (nextChild instanceof TextView) {
TextView textViewToConvert = (TextView) nextChild;
textViewToConvert.setTypeface(fontTypeFace)
}
}
Поместите файл.ttf в папку активов и используйте этот код в методе onCreate.
fontTypeFace= Typeface.createFromAsset(getAssets(),
"fontawesome-webfont.ttf");
tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
tabs.setTypeface(fontTypeFace,0);