Frage

In meinem Android App verwende ich eine TabWidget ohne spezielle Anpassung. Ich würde Android wie Pflege des spezifischen Aussehens zu nehmen, die gut funktioniert, wenn Sie Android 1.6 mit 2.1 zum Beispiel vergleichen. Nur durch eine TabWidget des gleichen Code führt zu verschiedenen Formen von Registerkarten verwenden, da die SDK definiert, wie es zu zeichnen. Hier ist, wie es auf 2.1 zum Beispiel aussieht:

alt text

Also, das markierte Register ist grau und die Schrift ist weiß und man kann es ganz gut lesen.

Aber, wenn Sie HTC Sense haben, sieht es wie folgt aus: alt text

Das Bild ist nicht so gut, aber mir nur glauben, dass es weißer Text auf weißen Hintergrund ist das nicht wirklich so einfach ...

lesen

Meine Fragen sind:

1) Warum Android erstellen TabWidget mit Weiß auf Weiß Text? Ich habe nie entweder die Textfarbe oder die Hintergrundfarbe definiert, so dass das System sollte sinnvolle Farben wählen.

2) gehe ich davon aus, dass andere TabWidgets hübsch aussehen auf HTC Sense, denn sonst wäre es ein großes und beliebtes Problem recht sein. Also, warum ist mein TabWidget dieses Problem haben und andere nicht.

3) Wie kann ich dieses Problem beheben, ohne das Aussehen auf nicht Sense-Geräte zu ändern?

Wie gesagt ich habe nicht die TabWidget in irgendeiner Weise anpassen. Hier ist meine Definition:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/black"
    >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="0dp"
            >
      <ScrollView 
            android:id="@+id/shortenerScrollView"
            android:layout_height="fill_parent" 
            android:layout_width="fill_parent"
            android:background="@android:color/black"
            android:fadingEdge="horizontal"
            >

Also, neben der Definition schwarz wie meine allgemeine Hintergrundfarbe der App, gibt es keine Farbe oder Stil gemacht defintion. Die einzige Ausnahme könnte sein, dass ich Standard-Android-IDs für TabHost und TabWidget bin mit.

/ Edit: Hier ist die Defintion der Registerkarten in der onCreate Methode:

th = getTabHost();
th.addTab(th.newTabSpec("shortener").setIndicator(getString(R.string.tabShortenerName),
        res.getDrawable(R.drawable.url_zip)).setContent(R.id.shortenerScrollView));

Die Klasse erstreckt sich eine TabActivity.

/ Edit 2: Das Gerät, das mit dem Weiß auf weißen Text kommt ein HTC Legend mit Android 2.1 btw.

/ Bearbeiten 3: dream3r war richtig. Ändern des targetSdk Wert 4 hat für mich den Trick auch (zuvor wurde es auf 6)! Ich habe nicht wirklich, aber ich kann jetzt damit leben. :)

Hier ist ein Bild, wie es jetzt aussieht: alt text

War es hilfreich?

Lösung

Haben Sie android:targetSdkVersion Satz in Ihrem AndroidManifest.xml? haben

Ich habe einige Testbeispielanwendung, und ich habe das gleiche Problem, wenn ich targetSdkVersion an Wert größer als 4 eingestellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top