小编mez*_*iga的帖子

通过setInputType()设置其输入类型后,自定义EditText无法正常工作

我创建了一个自定义EditText,并onDraw()重写了它的功能.一切都工作正常(我可以在EditText中绘制任何内容),直到我想为此更改输入方法EditText并调用此函数:

setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
Run Code Online (Sandbox Code Playgroud)

无论我何时何地调用它:在调用它之后,我的自定义EditText消失,只显示原始EditText,虽然我的重写onDraw()函数,并且在其中,或者调用它的超级函数(无论我在哪里调用它) .

我也曾尝试用透明色扮演一些帖子这里建议: setBackgroundColor(Color.TRANSPARENT)在基类,也是 paint.setColor(0x80FF0000)Paint的目标onDraw()函数,但他们都没有效果.

编辑:我发现问题不在于设置输入类型,而是同时设置输入类型和重力EditText:

setGravity(Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)

如果未设置其中任何一个,我的自定义视图将按预期绘制.(还有更奇怪的是):Gravity.CENTER_VERTICAL没有问题,只有Gravity.CENTER_HORIZONTALGravity.CENTER.

看起来这两个设置是互斥的.这有可能吗?

android android-custom-view android-edittext android-inputtype

10
推荐指数
2
解决办法
1116
查看次数