2016-01-17 7 views
12

Wie die gesamte TextView Unterstreichung an der Breite der Match-Parent wie EditText machen?Wie kann TextView genauso aussehen wie EditText?

Diese Codezeile unterstreicht nur den Text, nicht die gesamte TextView.

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

Der Grund, warum ich möchte Textview verwenden, ist, dass setOnClickListener sofort in einem Hahn für Textview ausgelöst wird, während zwei Hähne für eine behinderte editierbar EditText erforderlich sind.

+3

Wenn Sie so etwas wie ein EditText aussehen wollen, aber nicht bearbeitet werden, sollten Sie eine EditText verwenden und sie deaktivieren. Dann hat es auch die richtige Textfarbe, die dem Benutzer vorschlägt, dass es nicht editierbar ist. –

+0

Der Grund, warum ich TextView verwenden möchte, ist, dass setOnClickListener sofort in einem Tap für TextView ausgelöst wird, während zwei Taps für einen deaktivierten editierbaren EditText benötigt werden. –

Antwort

29

Sie können den Hintergrund eines EditText in Ihre TextView einfügen. Zum Beispiel:

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

Sie können den Text Aussehen android:textAppearance="@style/TextAppearance.AppCompat.Button" ändern möchten, wenn Sie ein AppCompat Thema verwenden.

+1

'android: background ="? Attr/editTextBackground "' ist die Antwort auf meine Frage. Vielen Dank, das ist hilfreich. –

+0

erstaunlich, Sie haben meine Zeit gespeichert –

+0

Gibt es eine Möglichkeit, das gleiche zu erreichen, aber für den ReadOnly EditText Stil? Wenn die TextView nicht bearbeitet werden kann, sollte die Unterstreichung wie bei einem regulären EditText, der "setEnable (false) && setClickable (false)" ist, ausgegraut werden. Irgendwelche Ideen? –

5

Sie dies erreichen können viele Zeilen von XML ohne das Schreiben Attribute:

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