8

私はいつもここで質問にコードを入れていますが、バグは何千行ものコードのどこかにある可能性があるため、今回は不可能です。でも:

StatelessWidget(ホーム プロパティ)の子孫であるメイン画面のビルド メソッド ( ) は、MaterialApp通常どおり、デバッグ モードでは 1 回呼び出されますが、リリース モードでは 3 回呼び出されることに気付きました。

どのような状況で、このようなことが起こり得るのでしょうか? すでに何度か再現を試みましたが失敗しました。

編集:

問題は、メディアクエリから取得した画面サイズをグローバル変数として保存しているため、どこからでもアクセスできることです。ここで、ツリーのさらに下にあるステートフル ウィジェットの init メソッド内でその変数にアクセスする必要があります。デバッグ モードでは問題ないようですが、リリース モードでは、メディア クエリ (ビルド内にある必要があります) を作成するウィジェットのビルド メソッドが 1 回呼び出され、メディア クエリの結果は Size(0.0, 0.0) になります。 、次に、ツリーのさらに下にあるウィジェットの init メソッドが呼び出され、次にメディア クエリを含む build メソッドがさらに 2 回呼び出されます (今回は正しい画面サイズで)。その結果、init メソッド内で正しい画面サイズが得られません。

4

1 に答える 1