So ändern Sie die Schriftgröße von Tabhost in Android

Lesezeit: 2 Minuten

So andern Sie die Schriftgrose von Tabhost in Android
ReNa

Wie kann die Schriftgröße der Registerkarten geändert werden? Ich erweitere TabActivity für die Registerkarten.

So andern Sie die Schriftgrose von Tabhost in Android
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 unterlegte res/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);

.

578500cookie-checkSo ändern Sie die Schriftgröße von Tabhost in Android

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy