Domanda

Nel mio app Android io uso un TabWidget senza alcuna personalizzazione speciale. Mi piacerebbe Android di prendersi cura l'aspetto specifico, che funziona bene se si confronta con Android 1.6 2.1, per esempio. Da solo utilizzando un TabWidget gli stessi conduttori codice a diverse forme di linguette perché SDK definisce come disegnare esso. Ecco come appare il 2,1 per esempio:

alt text

Quindi, la scheda evidenziata è grigio e il tipo di carattere è bianco e si può leggere abbastanza bene.

Ma, se si dispone di HTC Sense, sembra che questo: alt text

L'immagine non è quella buona, ma appena mi creda che è il testo bianco su sfondo bianco, che in realtà non è così facile da leggere ...

Le mie domande sono:

1) Perché Android creare un TabWidget con il bianco su testo bianco? Non ho mai definito né il colore del testo o il colore di sfondo, in modo che il sistema si suppone di scegliere i colori sensibili.

2) presumo che altri TabWidgets guardano bene su HTC Sense, perché altrimenti sarebbe piuttosto un grosso problema e popolare. Perché, dunque, il mio TabWidget avendo questo problema e non altri.

3) Come posso risolvere questo problema senza cambiare l'aspetto su dispositivi non sense?

Come ho già detto non ho personalizzare le TabWidget in alcun modo. Ecco la mia definizione:

<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"
            >

Quindi, oltre a definire il nero come il mio colore di sfondo generale dell'app, non c'è colore o stile defintion fatta. L'unica eccezione potrebbe essere che sto usando ID Android standard per TabHost e TabWidget.

/ Modifica: Ecco alla definizione di schede nel metodo onCreate:

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

La classe estende un TabActivity.

/ Edit 2: Il dispositivo che si presenta con la bianco su testo bianco è una leggenda HTC con sistema operativo Android 2.1 btw.

/ Edit 3: dream3r aveva ragione. La modifica del valore targetSdk a 4 ha fatto il trucco anche per me (prima, è stato fissato a 6)! Io in realtà non capisco, ma posso vivere con questo per ora. :)

Ecco una foto di come appare ora: alt text

È stato utile?

Soluzione

Avete impostato android:targetSdkVersion nel vostro AndroidManifest.xml?

Ho fatto alcuni test con applicazione di esempio e ho lo stesso problema se ho impostato targetSdkVersion a maggior valore rispetto 4.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top