我如何隐藏EditText下划线(提示行与小衬线在结束)?

可能有更好的方法来做我想做的事情:我有一个带有EditText的布局。通常情况下,在用户可以点击它并开始输入或编辑文本的地方显示正常。

但是,有时我想使用相同的布局(简化其他逻辑)以只读方式显示相同的数据。我希望演示是类似的-它应该有相同的高度和相同的字体,但没有下划线。

作为一种权宜之计,我将通过删除EditText并替换TextView来实现这一点。我认为这将带来预期的结果,但它似乎是一种迂回的昂贵的方式来完成一些本应该通过改变属性来轻松完成的事情。


当前回答

你可以通过编程方式使用setBackgroundResource:

editText.setBackgroundResource(android.R.color.transparent);

其他回答

您可以将EditText的backgroundTint值设置为特定的颜色。 如果你设置透明颜色,下划线应该消失。

android: backgroundTint = @color - Transparent”

< [name = Transparent”> # 00000000 < /颜色>

但是你可以在Api v21(Lollipop)或更高版本中使用它

请将编辑文本背景设置为

android:背景= " # 00000000 "

它会起作用的。

要同时保留页边距和背景色,请使用:

background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <padding
        android:bottom="10dp"
        android:left="4dp"
        android:right="8dp"
        android:top="10dp" />

    <solid android:color="@android:color/transparent" />

</shape>

编辑文本:

<androidx.appcompat.widget.AppCompatEditText
    android:id="@+id/none_content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background"
    android:inputType="text"
    android:text="First Name And Last Name"
    android:textSize="18sp" />

在我的例子中,editText.setBackgroundResource(R.color.transparent);是最好的。

它不删除默认填充,只是在栏下。

R.color.transparent = #00000000

如果你正在使用background,那么你必须使用这个标签

android:testCursorDrawable="@null"