如何在Android中给TextView下方添加一条线

12

我想要在TextView下方添加一条下划线,该下划线应该覆盖整个父容器的宽度,以使TextView看起来像标题。

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

提前感谢

8个回答

16

在TextView下面使用以下代码

<View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@android:color/darker_gray" />

android:layout_width="fill_parent" - M D
2
FILL_PARENT在API级别8中已被弃用,使用更高级别的API请使用MATCH_PARENT。 - Kastriot Dreshaj

9

你可以尝试这个

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

在你的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>

创建一个 drawable 名称为 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>

为你的color.xml添加颜色

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

谢谢,实际上我有太多的TextView。现在只需要为“Thanks a lot”添加样式。 - user5533329
如何包装内容以适应宽度大小? - Nanda Z

7
如果您想通过编程方式添加,则可以这样做。
mTextView.setPaintFlags(mTextView.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);

5
如果您从Strings文件夹向TextView添加文本,可以按以下方式指定... 来自strings.xml
<string name="your_string_here"><u>This is an underline</u>.</string>

如果您需要动态添加文本,则可以使用以下方法。
在您的活动中:
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
这对我有效。
tv.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG);

2
将视图放在下面的文本视图上方:
<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="# your hex color code  />

1

使用ConstraintLayout的示例。将视图约束到TextView上。将绘制具有与TextView完全相同空间的行。

<androidx.constraintlayout.widget.ConstraintLayout

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"               
            android:text="title"                             
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <view
            android:layout_width="0dp"
            android:layout_height="1dp"
            android:background="@color/color_black"
            app:layout_constraintTop_toBottomOf="@id/tv_title"
            app:layout_constraintStart_toStartOf="@id/tv_title"
            app:layout_constraintEnd_toEndOf="@id/tv_title"/>

</androidx.constraintlayout.widget.ConstraintLayout>

0

插入一个分隔线, 宽度为200dp开始,然后可以根据需要调整。将背景颜色改为你想要的颜色,将gravity设为水平居中。高度可以按照你的需求进行调整。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接