web-dev-qa-db-fra.com

comment donner une ligne en dessous de Textview dans Android

Je veux ajouter un soulignement qui couvre la largeur du parent de remplissage sous la vue texte pour montrer que la vue texte ressemble à l'en-tête.

        <TextView
            Android:id="@+id/title"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentEnd="true"
            Android:layout_alignParentRight="true"
            Android:layout_alignParentTop="true"
            Android:layout_marginLeft="10dp"
            Android:layout_marginStart="10dp"
            Android:lines="1"
            Android:maxLines="2"
            Android:text="Large Text"
            Android:textAppearance="?android:attr/textAppearanceLarge"
            Android:textColor="@color/black" />

Merci d'avance

8
user5533329

tu peux essayer ça

       <TextView
            Android:id="@+id/title"
            style="@style/sectionHeader"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_alignParentEnd="true"
            Android:layout_alignParentRight="true"
            Android:layout_alignParentTop="true"
            Android:layout_marginLeft="10dp"
            Android:layout_marginStart="10dp"
            Android:lines="1"
            Android:maxLines="2"
            Android:text="Large Text"
            Android:textAppearance="?android:attr/textAppearanceLarge"
            Android:textColor="@color/black" />

ajoutez du style à vos styles.xml

   <style name="sectionHeader"   parent="Android:Widget.Holo.Light.TextView">
     <item name="Android:drawableBottom">@drawable/section_header</item>
     <item name="Android:drawablePadding">4dp</item>
     <item name="Android:layout_marginTop">8dp</item>
     <item name="Android:paddingLeft">4dp</item>
     <item name="Android:textAllCaps">true</item>
     <item name="Android:textColor">@color/emphasis</item>
     <item name="Android:textSize">14sp</item>
   </style>

nommez un nom comme section_header.xml

<?xml version="1.0" encoding="utf-8"?>
 <shape
   xmlns:Android="http://schemas.Android.com/apk/res/Android"
   Android:shape="rectangle">
 <size Android:width="1000dp" Android:height="0.5dp" />
 <solid
    Android:color="@color/blue_grey"/>
 </shape>

ajouter de la couleur à votre color.xml

  <color name="blue_grey">#607d8b</color>
  <color name="emphasis">#31b6e7</color>
8
Shubhank Gupta

utilisez ce code sous la vue texte

<View
        Android:layout_width="match_parent"
        Android:layout_height="1dp"
        Android:background="@Android:color/darker_gray" />
11
Kastriot Dreshaj

Si vous voulez ajouter par programme alors faites ceci

mTextView.setPaintFlags(mTextView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);
5
Maverick

Si vous ajoutez du texte au dossier Textview from Strings, vous pouvez spécifier ce qui suit.

strings.xml

<string name="your_string_here"><u>This is an underline</u>.</string>

Si vous ajoutez du texte dynamiquement dans ce cas, utilisez ce qui suit.

Dans votre activité: -

TextView textView = (TextView) view.findViewById(R.id.textview);
SpannableString spannableStringObject= new SpannableString("Your text here");
spannableStringObject.setSpan(new UnderlineSpan(), 0, spannableStringObject.length(), 0);
textView.setText(spannableStringObject);
3
Harish

Cela fonctionne pour moi.

tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);
2
Abdalrhman Elsayed

Mettre la vue en dessous de la vue texte:

<View
    Android:layout_width="match_parent"
    Android:layout_height="1dp"
    Android:background="# your hex color code  />
2