2016-01-17 16 views
12

Come rendere l'intero TextView sottolineato alla larghezza della corrispondenza genitore come EditText?Come rendere TextView simile a EditText?

Questa riga di codice sottolinea solo il testo, non l'intero TextView.

textView.setPaintFlags(textView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG); 

Il motivo che voglio usare TextView è che setOnClickListener si attiva immediatamente in un solo tocco per TextView, mentre due rubinetti sono necessari per un disabile EditText modificabile.

+3

Se si desidera qualcosa da guardare come un EditText ma non essere modificabile è necessario utilizzare un EditText e disattivarla. Quindi avrà anche il giusto colore del testo che suggerisce all'utente che non è modificabile. –

+0

Il motivo per cui voglio utilizzare TextView è che setOnClickListener viene attivato immediatamente in un tocco per TextView, mentre sono necessari due tocchi per un EditText modificabile disattivato. –

risposta

29

Puoi mettere lo sfondo di un EditText sul tuo TextView. Per esempio:

 <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Your text" 
      android:hint="My hint" 
      android:textColor="?attr/editTextColor" 
      android:background="?attr/editTextBackground" 
      android:gravity="center_vertical" 
      android:textAppearance="?android:attr/textAppearanceMediumInverse" 
      /> 

Si potrebbe desiderare di cambiare l'aspetto del testo per android:textAppearance="@style/TextAppearance.AppCompat.Button" se si utilizza un tema AppCompat.

+1

'android: background ="? Attr/editTextBackground "' è la risposta alla mia domanda. Grazie mille, questo è utile. –

+0

incredibile, mi hai salvato il tempo –

+0

C'è un modo per ottenere lo stesso, ma per lo stile ReadOnly EditText? Quando TextView non è modificabile, la sottolineatura dovrebbe apparire in grigio come con un normale EditText che è "setEnable (false) && setClickable (false)". Qualche idea? –

5

È possibile raggiungere questo senza scrivere molte linee di attributi XML:

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Your text" 
     android:hint="Your hint" 
     style="@android:style/Widget.EditText" 
     /> 
Problemi correlati