2011-08-23 9 views
5

Provo a creare un ExpandableListView in cui le intestazioni di gruppo sono disegnate in modo inverso. Non c'è alcun problema con la modifica del colore del testo, dimensioni ecc. Via XML. Ho anche scoperto come utilizzare le impostazioni predefinite di sistema comequale stile/attr/drawable per sfondo inverso?

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@android:style/TextAppearance.Medium.Inverse" 
/> 

Ma per il colore di sfondo ?! Non capisco perché questi stili non includano le informazioni sul colore di sfondo ?!

Ovviamente potrei usare un colore diretto, ma cerco buoni attributi o stili di sfondo predefiniti. Come "style/Background.For.TextAppearance.Medium.Inverse" ;-)

Quale sarebbe una buona soluzione? In modo che per i dispositivi a tema scuro ottengo bianco/grigio, e per il tema bianco ottengo nero?

O dovrei semplicemente usare R.color.background_light?

Saluti, Joerg

PS: Prima domanda qui ;-) Grazie a tutte le persone che rispondono qui negli ultimi mesi e anni: Voi grandi persone ha reso molto più facile per me trovare un re-ingresso in programmazione dopo 12 anni di pausa ;-)

risposta

-1

Questo perché lo stile ha effetto solo sul colore del testo di TextView e, per impostazione predefinita, lo sfondo è trasparente. Si sta andando ad avere per cambiare lo sfondo utilizzando manualmente

android:backround="#FFFFFF" 

Ovviamente si può sostituire #FFFFFF con il colore della vostra scelta. Oppure si può scegliere un colore dalle vostre risorse di colore utilizzando:

android:background="@color/my_color_choice" 

Creazione di un file di risorse colore: Web colors in an Android color xml resource file

Ora si potrebbe notare che lo sfondo non riempie tutta l'area che si desidera, per risolvere il problema posizionare TextView in un ViewGroup (LinearLayout, RelativeLayout) e impostare il colore di sfondo del ViewGroup.

0

Come si osserva, gli stili con "TextAppearance" nel loro nome interessano solo gli attributi del testo in primo piano della vista. Sono appropriati per l'attributo android:textAppearance. Gli stili con "Widget" nei loro nomi definiscono tutte le proprietà dell'interfaccia utente e funzioneranno in un attributo style, ma Android non definisce uno stile "Widget.TextView.Inverse".

Quando ho voluto per visualizzare un registro console come come una visione del testo inversa, ho usato il seguente codice XML:

<TextView 
    android:textAppearance="@style/TextAppearance.AppCompat.Small.Inverse" 
    android:background="?android:colorForeground" 
    ... /> 

Usa colore di primo piano del tema come sfondo per la vista. Con un tema scuro mostra testo scuro su bianco, e in un tema chiaro mostra testo chiaro su nero.