gpt4 book ai didi

android - 每当发生变化时如何阻止android重新绘制整个屏幕?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:04 27 4
gpt4 key购买 nike

我有一个应用程序,允许用户从一组预定义的控件构建复杂的屏幕布局。然后这些控件相互对话以生成最终功能。我看到的问题是,无论我做什么,似乎由一个控件的更改引起的任何重绘都会迫使整个屏幕重绘(如启用“显示屏幕更改”所示)。因为我有很多自定义控件,它们背后没有太多 XML,所以重绘可能会非常慢。

例如,一个控件可能是一个由几个线性布局构建的计算器。另一个可能是从线性布局动态生成的命令网格构建。然后在加载屏幕时将其中的每一个添加到父相对布局。在计算器上按下一个键会强制命令网格重新绘制,即使它的任何 View 都没有改变。

我试过打开硬件加速并将所有 View 的图层类型更改为 LAYER_TYPE_HARDWARE,但没有成功。

如何确保只重绘屏幕的特定部分?在这一点上,我没有做任何使自己无效的调用,但我有自己的按钮、布局和其他 UI 组件的主题化版本,所以如果我需要下降到那个控制级别,至少已经有一个框架就位。

最佳答案

这看起来很像这个.. Moving Android View and preventing onDraw to be called over and over again但是,如果您只想绘制一个部分,请尝试调用 invalidate(rect),其中 rect 是一个 Rect,您定义的区域将被“重绘”,除此之外afaik 你不能。

关于android - 每当发生变化时如何阻止android重新绘制整个屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10641655/

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