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