如何在android中更改tabhost的字体大小

ReN*_*eNa 26 android tabwidget android-style-tabhost android-tabhost

如何更改选项卡的字体大小?我为选项卡扩展了TabActivity.

rek*_*eru 69

您可以定义主题,使用样式来实现此目的:

:首先,你创建的主题(名称CustomTheme为您)Activity在您的res/values/styles.xml:

<style name="CustomTheme" parent="@android:style/Theme">
    <item name="android:tabWidgetStyle">@style/CustomTabWidget</item>
</style>
<style name="CustomTabWidget" parent="@android:style/Widget.TabWidget">
    <item name="android:textAppearance">@style/CustomTabWidgetText</item>
</style>
<style name="CustomTabWidgetText" 
    parent="@android:style/TextAppearance.Widget.TabWidget">
    <item name="android:textSize">20sp</item>
    <item name="android:textStyle">bold</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后在您的androidManifest.xml指定上面的主题为您TabActivityActivity包含您的TabWidget:

<activity android:name="MyTabActivity" android:theme="@style/CustomTheme">
Run Code Online (Sandbox Code Playgroud)

这将为您提供所需的输出(当然您应该根据自己的喜好更改大小和样式).

  • 在Android 4.1.2模拟器中,这似乎将标签样式设置为一些奇怪的看起来对我来说:按下时按钮是橙色的.(也许它应用了一些Android 1.0风格而不是4.1默认风格?) (2认同)
  • 当我把它放在`res`下面时我遇到了错误,但是通过将它放在`res/values`下来修复它. (2认同)
  • @sydd您应该从Widget.Holo.TabWidget派生 (2认同)

Kar*_*iya 17

它不漂亮,但尝试这个脏修复:

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs);
View tabView = tw.getChildTabViewAt(0);
TextView tv = (TextView)tabView.findViewById(android.R.id.title);
tv.setTextSize(20);
Run Code Online (Sandbox Code Playgroud)

要么

 //Do this to hack font size of title text
 LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
 TabWidget tw = (TabWidget) ll.getChildAt(0);

 // for changing the text size of first tab
 RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0);
 TextView lf = (TextView) rllf.getChildAt(1);
 lf.setTextSize(21);
 lf.setPadding(0, 0, 0, 6);
Run Code Online (Sandbox Code Playgroud)

  • 上面的代码片段适用于2.3以下的android.不适用于Android 4.0和4.1. (3认同)

Mar*_*son 6

略有概括:

final TabWidget tw = (TabWidget)mTabHost.findViewById(android.R.id.tabs);
    for (int i = 0; i < tw.getChildCount(); ++i)
    {
        final View tabView = tw.getChildTabViewAt(i);
        final TextView tv = (TextView)tabView.findViewById(android.R.id.title);
        tv.setTextSize(20);
    }
Run Code Online (Sandbox Code Playgroud)