gpt4 book ai didi

android - 通过 setInputType() 设置输入类型后,自定义 EditText 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:07 24 4
gpt4 key购买 nike

我创建了一个自定义的 EditText,并覆盖了它的 onDraw() 函数。一切正常(我可以在 EditText 中绘制任何内容),直到我想更改此 EditText 的输入法并调用此函数:

setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);

无论我何时何地调用它:调用后,我的自定义 EditText 消失,只显示原始的 EditText,尽管我覆盖了 onDraw() 函数,并在其中调用其 super 函数(无论我在何处调用它)。

我也尝试按照此处某些帖子中的建议使用透明颜色:setBackgroundColor(Color.TRANSPARENT) 在基类上,还有paint.setColor(0x80FF0000) 用于我在 onDraw() 函数中的 Paint 对象但它们没有效果。

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

setGravity(Gravity.CENTER_HORIZONTAL);

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

这两个设置似乎是相互排斥的。这可能吗?

最佳答案

检查您的 getScrollX() 值。我打赌你会看到像 1000000 像素这样的值。 EditText 以这种奇怪的方式翻译它的 Canvas ,所以即使你实际上在它上面绘图,它也远离可见剪辑。

要解决它,只需将 scrollX 值添加到您的绘图坐标即可。

关于android - 通过 setInputType() 设置输入类型后,自定义 EditText 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23564633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com