如何给EditText添加下划线

5

我在AndroidStudio中遇到了一些问题,想要给EditText添加下划线。

这是我想要的效果(下图只是示意,不是真实文本):

example screenshot

但我不知道该使用哪个属性来实现这个效果。

我的代码非常简单,只有“普通”的代码:

 <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:layout_margin="16dp"
        android:id="@+id/tx_titulo"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="@string/pt_titulo"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:allowUndo="true"
        />

我不仅想要将文本(在这种情况下为“Título”)下划线标记,还想要将整个PlainText都进行标记。

有人知道怎么做吗? 问候。


3
默认设置里不已经有这个了吗?你的编辑文本代码是什么样子的? - CookieMonster
1
抱歉,我修改了问题。 - Mario López Batres
1
你可能将宽度设置为wrap_content。没有XML布局很难帮助你。尝试将其设置为match_parent,应该就可以解决问题了。 - w9jds
2个回答

4

这是默认设置,但请检查您的样式表。也许有一个样式会覆盖整个应用程序中的样式。如果有,请将其删除。


你是对的。这基本上是默认完成的。当我在手机上检查我的应用程序的行为时,它有效运行。 - Mario López Batres
@MarioLópezBatres 随时可以 :) - Malik Abu Qaoud

3
为了以编程的方式实现这个功能,您可以在这个帖子中找到答案。
要设置下划线颜色:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);

要去掉下划线颜色:

editText.getBackground().clearColorFilter();

如果您希望从XML中实现此操作,可以通过添加以下内容将background属性添加到layout.xml中的任何可绘制资源作为背景来实现:

android:background="@drawable/mydrawable"

如果您有几个具有相同样式配置的EditText,并且想避免为每个EditText设置属性,则可以重写EditText的默认属性,定义一个自定义样式,就像这里所做的那样。


但是,为每个Textview添加可绘制的背景是唯一的解决方案吗? - Mario López Batres
1
我猜你是指EditText,而不是Textview。不需要为每个EditText添加背景属性。我已经在答案中进行了编辑,并附带了有关如何自定义样式默认EditText以避免这种情况的评论。 - ortisenderos

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