2015-07-17 4 views
48

У меня возникают трудности с изменением размера текста вкладок библиотеки дизайна tablayout (android.support.design.widget.TabLayout).Размер текста андроидного дизайна TabLayout tabs

мне удалось изменить его, назначив tabTextAppearance в TabLayout

app:tabTextAppearance="@style/MyTabLayoutTextAppearance" 

следующий стиль

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> 
    <item name="android:textSize">14sp</item> 
</style> 

, но у меня есть 2 побочные эффекты:

1) Я потерял акцент цвет выбранная вкладка

2) Текст вкладки не заглавный ни одним моментом число рейнольдса

ответ

31

Перейти на использование tabTextAppearance, как вы делали, но

1) зафиксировать побочный эффект заглавной буквы добавить textAllCap в вашем стиле:

<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse"> 
    <item name="android:textSize">14sp</item> 
    <item name="android:textAllCaps">true</item> 
</style> 

2), чтобы зафиксировать выбранную вкладку цвета побочного эффекта добавления в TabLayout xml следующие библиотечные атрибуты:

app:tabSelectedTextColor="@color/color1" 
app:tabTextColor="@color/color2" 

Надеюсь, это поможет.

+0

он работает как шарм в настоящее время. Спасибо u2gilles за подсказку. – Malko

+0

@ u2gilles Я использовал пользовательский макет в вкладках, которые являются линейными, с 2 текстовыми изображениями, но я хочу изменить только один цвет текста на вкладке выбора? – Erum

+0

Если вы хотите установить false, тогда t здесь должна быть еще одна строка в дополнение к двум: false CodeToLife

119
<style name="MineCustomTabText" parent="TextAppearance.Design.Tab"> 
    <item name="android:textSize">16sp</item> 
</style> 

Использование в TabLayout как этот

<android.support.design.widget.TabLayout 
      app:tabTextAppearance="@style/MineCustomTabText" 
      ... 
      /> 
+8

не работает для меня, версия для поддержки 23.2.0 – m02ph3u5

+1

это не работает для меня, любая другая идея ??? –

+1

не работает для меня –

10

У меня есть аналогичные проблемы и аналогичную резолюцию:

1) Размер

в XML вы имеете TabLayout,

 <android.support.design.widget.TabLayout 
      ... 
      app:tabTextAppearance="@style/CustomTextStyle" 
      ... 
     /> 

то в стиле,

 <style name="CustomTextStyle" parent="@android:style/TextAppearance.Widget.TabWidget"> 
      <item name="android:textSize">16sp</item> 
      <item name="android:textAllCaps">true</item> 
     </style> 

Если вы не хотите, чтобы символы в верхнем регистре положить ложь в "Android: textAllCaps"

2) Цвет текста выбранных или невыбранных вкладок,

TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector,null)); 
    } else { 
     tabLayout.setTabTextColors(getResources().getColorStateList(R.color.tab_selector)); 
    } 

затем в Рез/цвет/tab_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:color="@color/white" android:state_selected="true" /> 
<item android:color="@color/white" /> 

14

Работа над апи 22 сделать этот стиль:

<style name="TabLayoutStyle" parent="Base.Widget.Design.TabLayout"> 
    <item name="android:textSize">12sp</item> 
    <item name="android:textAllCaps">true</item> 
</style> 

и применить его к tablayout:

<android.support.design.widget.TabLayout 
      android:id="@+id/contentTabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/list_gray_border" 
      app:tabTextAppearance="@style/TabLayoutStyle" 
      app:tabSelectedTextColor="@color/colorPrimaryDark" 
      app:tabTextColor="@color/colorGrey" 
      app:tabMode="fixed" 
      app:tabGravity="fill"/> 
+0

Большое спасибо! – DmitryKanunnikoff

5
TabLayout tab_layout = (TabLayout)findViewById(R.id.tab_Layout_); 

private void changeTabsFont() { 
    Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/"+ Constants.FontStyle); 
    ViewGroup vg = (ViewGroup) tab_layout.getChildAt(0); 
    int tabsCount = vg.getChildCount(); 
    for (int j = 0; j < tabsCount; j++) { 
     ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); 
     int tabChildsCount = vgTab.getChildCount(); 
     for (int i = 0; i < tabChildsCount; i++) { 
      View tabViewChild = vgTab.getChildAt(i); 
      if (tabViewChild instanceof TextView) { 
       ((TextView) tabViewChild).setTypeface(font); 
       ((TextView) tabViewChild).setTextSize(15); 

      } 
     } 
    } 
} 

Этот код работает для меня с помощью tablayout. Он изменит размер шрифтов, а также изменит стиль шрифта.

Это также поможет вам, ребята, пожалуйста, проверьте эту ссылку

https://stackoverflow.com/a/43156384/5973946

Этот код работает для цвета текста изменений Tablayout, тип лица (стиль шрифта), а также размер шрифта.

3

попробовать это .... свою работу для меня ....

в моем layout.xml я есть использовать что-то вроде этого ....

<android.support.design.widget.TabLayout 
    android:id="@+id/tab_layout" 
    style="@style/MyCustomTabLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:tabGravity="fill" 
    app:tabMode="fixed" /> 

и в моем style.xml у меня есть использовать что-то вроде мира кода ....

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> 
    <item name="android:background">YOUR BACKGROUND COLOR</item> 
    <item name="tabTextAppearance">@style/MyCustomTabText</item> 
    <item name="tabSelectedTextColor">SELECTED TAB TEXT COLOR</item> 
    <item name="tabIndicatorColor">SELECTED TAB INDICATOR COLOR</item> 
</style> 

<style name="MyCustomTabText" parent="TextAppearance.AppCompat.Button"> 
    <item name="android:textSize">YOUR TEXT SIZE</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:textColor">@android:color/white</item> 
</style> 

Я надеюсь, что это будет работать для вас .....

 Смежные вопросы

  • Нет связанных вопросов^_^