我已将textview的文本定义为 -
<string name="text"><u>this is my text</u></string>
我需要在文本和下划线之间留出一些空格,因此我在文本视图中添加了lineSpacingExtra="2dp"
,但它无效。
有人能说出如何实现这个目标吗?
我需要支持API 14到21。上述测试是在API 21上完成的。
答案 0 :(得分:2)
我花了很多时间在这个问题上,这是我的发现!
首先,要increase the spacing between the text and underline in css到Html.fromHtml(),您需要使用styles
,不幸的是,使用HTML Tags Supported By TextView时,Android TextView
不支持style
标记。不幸的是,甚至不支持span
标记(否则可能已经使用过)。要查看支持的完整标记列表,请查看{{3}}博客。
既然我们知道基本的简单实现不会起作用,剩下的另一种方法就是伪造它(欺骗用户!)。在您的xml布局中,TextView
在其下方添加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
属性调整间距。希望这有帮助!
答案 1 :(得分:0)
我的建议是完全删除文本字符串中的下划线,因为您无法从那里自定义间距。之后,您有几个选择。一种选择是使用@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
如果你想要一个快速简单的&#34; hack&#34;然后转到创建TextView的活动的布局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是显示文本(&#34;这是我的文字&#34;)的地方,因此您可以调整&#34; layout_marginBottom&#34;在文本和下划线之间需要的间距。第二个TextView充当您的下划线,因此要调整其厚度,您可以更改&#34; layout_height&#34;值。
完成这项工作的最后一步是进入你的价值观#34;项目中的文件夹,并创建一个名为&#34; colors.xml&#34;的新XML文件。此示例的全部内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="underline">#333333</color>
</resources>
只需更改此XML文件中的十六进制颜色值,即可根据您的选择自定义下划线颜色。