如何编辑和隐藏 underbar?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (9)
  • 关注 (0)
  • 查看 (62)

我应该如何在代码里隐藏EditTextUnderbar?

我有一个带有EditText的布局,通常情况下,用户可以点击它并开始输入或编辑文本。

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

作为一个临时措施,我将通过删除EditText并替换TextView来实现这个功能。我认为这将给出理想的结果,但它似乎是一种迂回的方法,可以通过改变属性来做一些应该很容易做到的事情。

提问于
用户回答回答于

你可以设置EditText具有自定义透明、可绘制或仅使用android:background="@android:color/transparent"来实现。

用户回答回答于

如果使用数据绑定将其设置为nullandroid:background="@{null}"

然后不仅删除背景,而且视图仍然有从默认背景中计算的填充。因此,由于某些原因,延迟的null设置不清除前一个bg的填充。视图上的填充是左/上/右4dp,底部13dp(从仿真器级别21)。

在不同的API上可能会产生不同的结果,还要注意,底部的填充物之所以突出是因为它的下划线是原始的。因此,你可以在XML中更改它,或者在将其加载到相等的顶部后重新设置它。

用户回答回答于

如果编辑文本已经有背景的话,则可以使用以下内容:

android:textCursorDrawable="@null"
用户回答回答于

使用任一属性:

android:background="@null"

android:background="@android:color/transparent"

的下划线。

但是请注意,它会导致与TextInputLayout有关的EditText出现间距问题。

用户回答回答于

我所做的就是创建一个可绘制的形状,并将其设置为背景:

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

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

    <solid android:color="#fff" />

</shape>

注意:我实际上用了@dimen@color值,但为了清晰起见,我在这里简化了形状文件。

用户回答回答于

你可以以编程方式来使用setBackgroundResource:

editText.setBackgroundResource(R.color.transparent);
用户回答回答于

你可以EditTextbackgroundTint值设置为特定颜色。如果你将它的颜色设置为透明,underbar就会消失了。

android:backgroundTint="@color/Transparent"

<color name="Transparent">#00000000</color>

你可以用这个Api v21(Lollipop)或更高版本

用户回答回答于
用户回答回答于

扫码关注云+社区