Wie kann die Schriftgröße der Registerkarten geändert werden? Ich erweitere TabActivity für die Registerkarten.
So ändern Sie die Schriftgröße von Tabhost in Android
ReNa
rekaszeru
Sie können Themen definieren und Stile verwenden, um dies zu erreichen:
Zuerst erstellen Sie das Thema (Name:CustomTheme
) für dein Activity
in deinem 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>
Dann in deiner androidManifest.xml
Sie geben das Thema oben für Ihr an TabActivity
oder Activity
enthält Ihre TabWidget
:
<activity android:name="MyTabActivity" android:theme="@style/CustomTheme">
Dadurch erhalten Sie die gewünschte Ausgabe (natürlich sollten Sie die Größe und den Stil nach Ihren Wünschen ändern).
-
Im Android 4.1.2-Emulator scheint dies den Tab-Stil auf einen seltsam aussehenden zu setzen: Die Schaltflächen sind orange, wenn sie gedrückt werden. (Vielleicht wendet es einen Android 1.0-Stil anstelle des 4.1-Standardstils an?)
– sydd
5. Dezember 12 um 19:05 Uhr
-
Ich bekam Fehler, als ich es unterlegte
res
aber reparierte es, indem ich es unterlegteres/values
.– Barney
26. Februar 13 um 12:12 Uhr
-
@sydd Sie sollten von Widget.Holo.TabWidget abgeleitet werden
– Roll
4. November 14 um 12:12 Uhr
Es ist nicht schön, aber versuchen Sie es mit diesem 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);
oder
//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);
-
Das obige Code-Snippet funktioniert für Android unter 2.3. Funktioniert nicht für Android 4.0 und 4.1.
– Satish
25. Oktober 12 um 10:02 Uhr
Leicht verallgemeinert:
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);
}
-
es war perfekt!
– Mang Jojot
17. April 18 um 0:31 Uhr
Ich verwende dieses Stück Code in meinem Code, aber es wirkt sich nur auf den ersten Tab aus, die anderen 3 Tabs bleiben unverändert.
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(10);
.