我创建了一个 custom EditText
,并onDraw()
覆盖了它的功能。一切正常(我可以在 EditText 中绘制任何内容),直到我想为此更改输入法EditText
并调用此函数:
setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
无论我何时何地调用它:在它被调用后,我的自定义EditText
消失了,并且只显示原始EditText
的,尽管我的重写onDraw()
函数,并且在其中,它的超级函数被调用(无论我在哪里调用它) .
我也尝试过按照这里的一些帖子中的建议使用透明颜色:
setBackgroundColor(Color.TRANSPARENT)
在基类上,以及
函数中paint.setColor(0x80FF0000)
的Paint
对象,onDraw()
但它们没有效果。
编辑:我发现问题不在于设置输入类型,而在于EditText
同时设置输入类型和重力:
setGravity(Gravity.CENTER_HORIZONTAL);
如果其中任何一个未设置,我的自定义视图将按预期绘制。另外(更奇怪的是): withGravity.CENTER_VERTICAL
没有问题,只有Gravity.CENTER_HORIZONTAL
and Gravity.CENTER
。
这两个设置似乎是互斥的。这可能吗?