2016-01-17 17 views
12

Jak zrobić całe podkreślenie TextView na szerokość rodzica meczu, takiego jak EditText?Jak zrobić TextView wygląda dokładnie tak samo jak EditText?

Ta linia kodu tylko podkreśla tekst, a nie cały tekst.

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

Powodem chcę użyć TextView że setOnClickListener jest wyzwalany natychmiast w jednym dotknięciem dla TextView, natomiast dwa zawory są wymagane dla niepełnosprawnego edycji EditText.

+3

Jeśli chcesz coś wyglądać jak EditText ale nie można edytować należy użyć EditText i wyłączyć go. Wtedy też będzie miał odpowiedni kolor tekstu sugerujący użytkownikowi, że nie można go edytować. –

+0

Powodem, dla którego chcę korzystać z TextView jest to, że setOnClickListener jest wyzwalane natychmiast jednym kliknięciem dla TextView, podczas gdy dwa dotknięcia są wymagane dla wyłączonego edytowalnego EditText. –

Odpowiedz

29

Możesz wstawić tło EditText do swojego TextView. Na przykład:

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

Możesz chcieć zmienić wygląd tekstu do android:textAppearance="@style/TextAppearance.AppCompat.Button" jeśli używasz motywu AppCompat.

+1

'android: background ="? Attr/editTextBackground "' jest odpowiedzią na moje pytanie. Dziękuję bardzo, to jest pomocne. –

+0

niesamowite, zaoszczędzisz mój czas –

+0

Czy istnieje sposób na osiągnięcie tego samego, ale dla stylu ReadOnly EditText? Gdy tekst nie jest edytowalny, podkreślenie powinno być wyszarzone jak w zwykłym EditText, który jest "setEnable (false) && setClickable (false)". Jakieś pomysły? –

5

Można to osiągnąć bez konieczności pisania wiele linii xml atrybuty:

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