2011-02-05 3 views
9

Nella mia attività è presente un oggetto AutoCompleteTextView che esegue come dovrebbe. L'arco a discesa viene mostrato con le voci corrette, ecc. Il problema è quando la vista perde la messa a fuoco, il testo non è più visibile. Quando la messa a fuoco viene ripristinata, il testo è visibile.AutoCompleteTextVisualizzazione del problema di messa a fuoco persa

Qualcun altro ha avuto questo problema? È un bug o qualcosa che sto sbagliando?

+3

Si scopre questo è un bug nel tema della luce Android. Soluzione alternativa disponibile qui http://code.google.com/p/android/issues/detail?id=5237 – AverageMarcus

+2

Wow. È semplice come aggiungere 'android: textColor =" @ android: color/primary_text_light "' al file XML per il layout di AutoCompleteTextView. – Nuthatch

+0

@Nuthatch Grazie. Ho appena trascorso due giorni a combattere con lo stesso problema. :) – Pawel

risposta

0

Forse quando non si concentra l'elemento, TextColor è uguale al colore di sfondo sul tema corrente. Quindi non è possibile vederli, basta vedere il testo dell'elemento che si concentra.

Risolvi: imposta colori diversi rispetto a background_color. è possibile utilizzare android.R.layout.simple_dropdown_item_1line e così via quando si crea l'adattatore, o il proprio textViewResourceId come:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:textSize="20dp" 
    android:gravity="center_vertical" 
    android:id="@android:id/text1" 
    android:paddingLeft="6.0dip" 
    android:paddingRight="6.0dip" 
    android:layout_width="fill_parent" 
    android:layout_height="50.0dip" 
    android:textColor="@android:color/black" 
    android:textColorHighlight="@android:color/black" /> 
+0

presume che 'black' sia appropriato per il tema del dispositivo corrente. 'primary_text_light' è più sicuro se intendi" testo scuro su sfondo chiaro " – Nuthatch

0

E 'facile come insieme di textcolor TextView,

<AutoCompleteTextView 
     android:layout_width="120dip" 
     android:layout_height="wrap_content" 
     android:singleLine="true" 
     android:ems="10" 
     android:textColor="@android:color/black" />