tabWidget = tabHost.getTabWidget();
tabHost.addTab(tabHost.newTabSpec("PLAN").setContent(R.id.LinearLayout001)
.setIndicator("计划中"));
tabHost.addTab(tabHost.newTabSpec("COMPLTED").setContent(R.id.LinearLayout003)
.setIndicator("已完成"));
//注意这个就是改变Tabhost默认样式的地方,一定将这部分代码放在上面这段代码的下面,不然样式改变不了
for (int i =0; i < tabWidget.getChildCount(); i++) {
//修改Tabhost高度和宽度
tabWidget.getChildAt(i).getLayoutParams().height = 30;
tabWidget.getChildAt(i).getLayoutParams().width = 65;
//修改显示字体大小
TextView tv = (TextView) tabWidget.getChildAt(i).findViewById(android.R.id.title);
tv.setTextSize(15);
tv.setTextColor(this.getResources().getColorStateList(android.R.color.white));
}
查到如下资料:
android中源
themes.xml
Java代码
<item name="tabWidgetStyle">@android:style/Widget.TabWidget</item>
styles.xml
Java代码
<style name="Widget.TabWidget">
<item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
<item name="ellipsize">marquee</item>
<item name="singleLine">true</item>
</style>
<style name="TextAppearance.Widget.TabWidget">
<item name="android:textSize">14sp</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@android:color/tab_indicator_text</item>
</style>
所以目的就是要更改TextAppearance.Widget.TabWidget中的textsize。
工程中创建
themes.xml
Java代码
<style name="Theme" parent="android:style/Theme">
<item name="android:tabWidgetStyle">@style/TabWidget</item>
</style>
styles.xml
Java代码
<resources>
<style name="TabWidget" parent="android:style/Widget.TabWidget">
<item name="android:textAppearance">@style/TabIndicatorTextAppearance</item>
</style>
<style name="TabIndicatorTextAppearance" parent="android:style/TextAppearance.Widget.TabWidget">
<item name="android:textSize">11sp</item>
</style>
</resources>
最后在你的AndroidManifest.xml的activity里面引用改style
Java代码
<activity android:name=".MainActivity"
android:theme="@style/Theme"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>