默认情况下,android.widget.EditText
的文本下方有一行。这在技术上到底是怎么做的?我检查了source code类的EditText
,但找不到在哪里完成?
我想知道该行在技术上是背景,但是该背景设置在哪里?尤其是,由于它只是一个背景,Android如何确保此线绘制在文本下方而不是文本下方?带有证明的答案/对来源的链接表示高度赞赏。
是,此下划线是背景,可能是ColorStateList
(例如,按下时它会更改颜色),但是如果您在Android 4.x或更早版本(材料设计前)上运行代码,则该背景是固定的位图/可绘制
EditText
具有android:background
属性,但对于所有其他View
也存在。因此将其设置在View
的源代码内部,而不扩展EditText
。并通过样式/主题设置指向适当的背景可绘制对象的指针(在HERE中有一些示例)
EditText
正在使用TextPaint
(getPaint
方法),可用于在字母之间/上方/下方/下方添加一些额外的间距。同样drawable可能具有padding
属性-在最后一行像素中画一条画线,但将底部填充设置为1px
,并确保此View
(在这种情况下为EditText
)的内容不会在下方/上方绘制填充(但可绘制的)
很抱歉,答案不太精确,主题需要更多的研究和搜索,但是也许我的观点会帮助您自己找到答案