問題タブ [rasterize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - TextFieldカーソルの変更時に画面全体をフラッターで再描画してラスタライズする
画面の中央に TextField をレンダリングする非常に単純なフラッター アプリがあります。ウィジェット ツリーは次のとおりです: MaterialApp > Scaffold > Center > Padding> RepaintBoundary > TextField
これはアプリが起動したばかりの画面です。すべて問題ありません。最初のレンダリングですべての境界線の表示を再描画します。
しかし、TextField をタップすると、キーボードが開き、画面全体が再描画され、1 つの奇妙なことが起こります。画面全体がラスター キャッシュ チェッカーボードで覆われていますか?
そこから、カーソル位置を変更するか、TextField のテキストを変更するたびに、画面全体をカバーするラスター キャッシュ チェッカーボードが別の色に更新されます。TextField は再描画されます (これは正常です) が、画面全体も再描画されますが、これは奇妙です。TextField の境界線が再描画され、画面全体が新しい色に更新されていることがわかります。
テキストフィールドを更新するたびに、タイムラインで何が起こるかを次に示します。
私の質問は、TextField にフォーカスしたり、カーソル位置を更新したりすると、全体がラスター キャッシュされて再描画されたのはなぜですか?