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

时间:2011-04-26 10:24:53

标签: android android-tabhost tabwidget android-style-tabhost

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

4 个答案:

答案 0 :(得分: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>

然后在androidManifest.xml中,为TabActivityActivity包含TabWidget

指定上述主题
<activity android:name="MyTabActivity" android:theme="@style/CustomTheme">

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

答案 1 :(得分:17)

它不漂亮,但试试这个Dirty Fix:

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);

 //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);

答案 2 :(得分: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);
    }

答案 3 :(得分:2)

我在我的代码中使用了这段代码,但它仅在第一个Tab上生效,其他3个选项卡仍未更改。

data = json.loads('[1, 2, 3, 4]')