0

我有一个非常简单的颤振应用程序,它在屏幕中间呈现一个 TextField。这是小部件树:MaterialApp > Scaffold > Center > Padding> RepaintBoundary > TextField 在此处输入图像描述

在此处输入图像描述

这是应用程序刚启动时的屏幕,一切正常,在第一次渲染时重绘边框显示 在此处输入图像描述

但是当我点击 TextField 时,键盘打开,整个屏幕被重新绘制,并且发生了一件奇怪的事情:整个屏幕被光栅缓存棋盘覆盖? 在此处输入图像描述

从那里开始,每次我更改光标位置或更改 TextField 中的文本时,覆盖整个屏幕的光栅缓存棋盘都会更新为不同的颜色。TextField 被重新绘制(这是正常的),但整个屏幕也被重新绘制,这很奇怪,因为我已经将 TextField 包装在 RepaintBoundary 中?您可以在 TextField 上看到重绘边框,并且整个屏幕已更新为新颜色。

在此处输入图像描述

每次我更新文本字段时,时间轴上都会发生以下情况: 在此处输入图像描述

我的问题是:当我聚焦 TextField 或更新光标位置时,为什么整个被光栅缓存和重新绘制?

4

0 回答 0