如何隐藏EditText中的下划线
问题的原因是想要隐藏EditText中的下划线,但是设置android:background=""并不起作用。有人建议使用android:background=":color/transparent",但有人认为这样做是因为android:background=""是令人害怕的。有人解释说android:background=""表示没有背景存在,而指定background="#00000000"会绘制带有透明度为0的白色背景。另外,有人表示android:background=""也隐藏了光标,而android:background=":color/transparent"则没有。有人则认为null并不可怕,它非常有用,可以使用setBackGroundDrawable(null)将背景设置为默认值。也有人表示应该避免使用null,因为它可能引发空指针异常,并且也不清楚在将来的Android版本中它的含义会是什么。相比之下,将背景设置为android:color/transparent更加明确和清晰。还有人解释说android:color/transparent与null的值是相同的,实际上在AppcompatEditText类中也使用了setInternalBackgroundTint(null)。因此,作者建议更深入地了解null的使用。
问题出现的原因是想要隐藏EditText下划线。解决方法有以下几种:
1. 可以将EditText设置为一个自定义的透明drawable,或者使用下面的代码设置background为透明:
android:background=":color/transparent"
或者
android:background=""
或者在编程中使用下面的代码:
editText.setBackgroundResource(android.R.color.transparent);
2. 最佳的解决方法是创建一个自定义的drawable。首先使用用于普通EditText字段的9-patch图片作为基础,然后修改它以去除不需要的下划线和其他图形。这样,修改后的EditText将具有与普通EditText字段相同的边距和整体外观。如果仅仅将background设置为null,将会失去边距。
3. 如果已经设置了其他颜色的背景,例如灰色,可以如下代码移除下划线:
android:background=":color/transparent"
4. 如果使用Android 19版本,使用`android:background=":color/transparent"`会导致边距丢失的问题。是否有人创建过这样的自定义drawable的示例?
5. 如果想要在Java中以编程方式实现,可以使用以下代码:
myedittext.setBackgroundResource(R.color.fui_transparent);
6. 如果想要将背景恢复为默认值,可以使用以下代码:
myedittext.setBackgroundResource(android.R.drawable.edit_text);
7. 以前可以将Visibility设置为false来去除下划线,并且如果用户点击自定义文本框,发送一个performclick消息。但是这种方法不够可靠,现在更推荐使用上述方法。
要想隐藏EditText下划线,可以通过设置透明的背景或者创建自定义的drawable来实现。在Xml中可以使用`android:background=":color/transparent"`,在Java中可以使用`editText.setBackgroundResource(android.R.color.transparent)`。如果已经有其他背景颜色,可以使用同样的代码将background设置为透明。如果想要将背景恢复为默认值,可以使用`myedittext.setBackgroundResource(android.R.drawable.edit_text)`。