如何在EditText的文本下方创建该行?

问题描述 投票:0回答:1

默认情况下,android.widget.EditText的文本下方有一行。这在技术上到底是怎么做的?我检查了source code类的EditText,但找不到在哪里完成?

我想知道该行在技术上是背景,但是该背景设置在哪里?尤其是,由于它只是一个背景,Android如何确保此线绘制在文本下方而不是文本下方?带有证明的答案/对来源的链接表示高度赞赏。

enter image description here

android android-edittext android-background
1个回答
0
投票

是,此下划线是背景,可能是ColorStateList(例如,按下时它会更改颜色),但是如果您在Android 4.x或更早版本(材料设计前)上运行代码,则该背景是固定的位图/可绘制

EditText具有android:background属性,但对于所有其他View也存在。因此将其设置在View的源代码内部,而不扩展EditText。并通过样式/主题设置指向适当的背景可绘制对象的指针(在HERE中有一些示例)

EditText正在使用TextPaintgetPaint方法),可用于在字母之间/上方/下方/下方添加一些额外的间距。同样drawable可能具有padding属性-在最后一行像素中画一条画线,但将底部填充设置为1px,并确保此View(在这种情况下为EditText)的内容不会在下方/上方绘制填充(但可绘制的)

很抱歉,答案不太精确,主题需要更多的研究和搜索,但是也许我的观点会帮助您自己找到答案

© www.soinside.com 2019 - 2024. All rights reserved.