gpt4 book ai didi

android - 您多久可以更新一次 textview 而不会弄乱

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

假设一个 TextView

TextView tvSum = findViewById(R.id.sumTexviewId);

如果我想更改显示的文本,我会这样做:

tvSum.setText("£0.00");

现在,假设我经常这样做,比如每次按下按钮时,可能会显示收银台上输入的总和。在这个例子中,你按一个,它说“1p”,然后你按两个,它说“12p”等等。

我发现如果我这样做,文本会在一段时间后变得扭曲。对于序列 12345,从一切开始都是好的:

  • > 0p (还没有按下)
  • > 1p (按下“1”)
  • > 12p (然后按下“2”)
  • > £1.23 (然后按下“3”)

然而,在那之后事情变得一团糟:

  • > Mess: £12.34 (然后按“4”)
  • > Mess: £123.45 (然后按下“5”)

此后情况永远不会好转。我没有发布代码,因为代码真的很简单:一堆按钮,只向一个 TextView 写入一个短字符串——老实说,代码中的任何内容都不会导致这种情况。 (是的,我已经通过将其放在 Toast 上来检查正在写入的字符串是否正确。)还有其他人遇到过这个问题吗?如果是的话,是什么解决了这个问题?

最佳答案

原来是Mr.Me一直在寻找正确的方向,这与文本更改时呈现背景的方式有关。我已经(有意地)将按钮设置为在黄色轮廓内具有透明背景(而不是未指定),使用颜色 0x00000000。

出于某种原因,在应用非完全不透明填充时,新背景会覆盖之前的内容(我认为是大约 3 个位图的循环),而不是定义内容。我猜这可能是由于 Canvas 使用的默认 PorterDuff 传输模式所致。

我在解决这个问题时想到的解决方案:

  1. 不指定背景。这也是透明的,但出于某种原因主动如此。
  2. 拥有完整的 alpha 背景。 (缺点:如果你想要一些透明度就不起作用)
  3. 编写一个覆盖 onDraw 的自定义 View ,以便在调用 super.onDraw() 之前主动用 0x00 填充 Canvas 。 (缺点:这摆脱了这个 View 中的任何背景,但保留了这个 View 后面的 View 。

为“不做任何花哨的”声明道歉 - 我没有意识到主动将背景设置为透明算作花哨!

关于android - 您多久可以更新一次 textview 而不会弄乱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16491280/

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