2013-08-20 13 views
12

Nella mia app, ho un testo di modifica con le proprietà:EditText cursore diventa invisibile in Jellybean

android:inputType="none" e android:textIsSelectable="true".

È perché ho definito i miei pulsanti per immettere input (pulsanti, non tastiera personalizzata). Ho usato

editText.requestFocus()

per rendere visibile il cursore. Fino ad Android 4.0.4, il cursore è visibile e non nei telefoni che eseguono Jelly Bean. Il cursore non è visibile ma sono in grado di toccare e inserire il testo tra i caratteri (utilizzando editText.getSelectionStart()).

Cosa è cambiato in Jelly Bean? Come faccio a rendere visibile il cursore?

Edit: android:cursorVisible="true" non aiuta.

risposta

38

Rimozione android:textIsSelectable="true (il testo è selezionabile anche senza di questo)

e aggiunta

android:textCursorDrawable="@null" risolto il problema.

+2

Il cursore potrebbe essere invisibile perché si fonde con il colore di sfondo. Il 'null' sopra lo costringe a usare' android: textColor' –

0

Prova ad aggiungere il seguente:

android:clickable="false" 
+0

Devo essere in grado di impostare il cursore. Questo non lo impedirà? –

0

Impostazione android:textCursorDrawable="@android:drawable/my_cursor_drawabl" come illustrato di seguito. stile EditText

Theme:

<item name="android:editTextStyle">@style/myEditText</item> 

seguito disegnabile per impostare il cursore: per Android: la proprietà textCursorDrawable di edit-text

<style name="myEditText" parent="@android:style/Widget.Holo.Light.EditText"> 
    <item name="android:background">@android:drawable/editbox_background_normal</item> 
    <item name="android:textCursorDrawable">@android:drawable/my_cursor_drawable</item> 
    <item name="android:height">45sp</item> 
</style> 

check this

+0

Ho aggiunto il