Android: Hervorgehoben Registerkarte TabWidget nicht lesbar auf HTC Sense
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:
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:
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 ...
lesenMeine 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:
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.