【问题标题】:How to add a spacing between text and underline in android?如何在android中的文本和下划线之间添加间距?
【发布时间】:2015-10-13 04:05:48
【问题描述】:

我已将 textview 的文本定义为 -

<string name="text"><u>this is my text</u></string>

我需要在文本和下划线之间留一些空间,所以我在文本视图中添加了lineSpacingExtra="2dp",但它不起作用。

谁能告诉我如何做到这一点?

我需要支持 API 14 到 21。上面的测试是在 API 21 上完成的。

【问题讨论】:

    标签: android


    【解决方案1】:

    我在这个问题上花了很多时间,这是我的发现!

    首先,对于increase the spacing between the text and underline in css,你需要使用styles,不幸的是AndroidTextView在使用Html.fromHtml()时不支持style标签。不幸的是,甚至不支持span 标签(否则可能会被使用)。要查看支持的标签的完整列表,请查看HTML Tags Supported By TextView 博客。

    既然我们知道基本的简单实现是行不通的,剩下的唯一方法就是伪造它(愚弄用户!)。在您拥有TextView 的xml 布局中,在其下方添加一个View,并具有以下属性。

    <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/text"
            android:textSize="20sp"/>
    
        <View
            android:id="@+id/underlineView"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_alignEnd="@+id/textView"
            android:layout_alignLeft="@+id/textView"
            android:layout_alignRight="@+id/textView"
            android:layout_alignStart="@+id/textView"
            android:layout_below="@+id/textView"
            android:layout_marginTop="10dp"
            android:background="@android:color/holo_red_dark"/>
    

    如您所见,underlineView 正在模拟下划线。它的宽度固定在它上面的 textview 上。您可以将其颜色设置为您需要的任何颜色,重要的是您可以使用 android:layout_marginTop 属性调整间距。希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我的建议是从文本字符串中完全删除下划线,因为您无法从那里自定义间距。之后,您有几个选择。一种选择是使用以下链接中讨论的@drawable 功能:http://www.quora.com/How-do-I-design-edit-text-view-with-bottom-border-alone-in-Android-and-edit-text-view-with-some-special-symbol-like-below-image

      如果您想要快速简单的“破解”,请转到创建 TextView 的 Activity 的布局 XML。将您的 TextView 包装在 LinearLayout 中,如下所示:

          <LinearLayout 
              android:orientation="vertical"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content">
              <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="@string/text"
                   android:layout_marginBottom="2dp" />
              <TextView
                   android:layout_width="fill_parent"
                   android:layout_height="1dp"
                   android:background="@color/underline" />
      </LinearLayout>
      

      第一个 TextView 是显示文本(“这是我的文本”)的位置,因此您可以将“layout_marginBottom”调整为文本和下划线之间所需的任何间距。第二个 TextView 充当您的下划线,因此要调整其粗细,您可以更改“layout_height”值。

      完成这项工作的最后一步是进入项目中的“values”文件夹并创建一个名为“colors.xml”的新 XML 文件。本示例的全部内容如下:

      <?xml version="1.0" encoding="utf-8"?>
      <resources>
           <color name="underline">#333333</color>
      </resources>
      

      只需更改此 XML 文件中的十六进制颜色值,即可根据您的选择自定义下划线颜色。

      【讨论】:

        猜你喜欢
        • 2013-12-01
        • 2010-12-16
        • 1970-01-01
        • 2021-04-12
        • 2021-12-10
        • 2012-09-20
        • 2017-11-24
        • 2020-09-18
        相关资源
        最近更新 更多