Flutterで売れるアプリを作ってみようPart9 結果画面を表示する

ほのぼのリバーシ

進捗が悪くなってきた気がする

もっとがんばります

最初はこちら、前回はこちら、次回はこちらを参照してください

今できているもの

ゲームの結果画面が表示されるようになりました

学んだこと

「setState() or markNeedsBuild() called during build.」のエラーが出たとき

画面が初期化される前にcontextを使うとよく出る

初期化を待つためにFuture.delayedで囲む

Future.delayed(Duration.zero, () async {
  // エラーになる処理
  hoge();
});

Mapのvalueでsortをする

SplayTreeMapだと同じ値のときに正しい結果が得られないため、

  Map<String, int> hoge = {'a': 1, 'b':1 };
    final sortedMap = SplayTreeMap<String, int>.from(hoge, (a, b) => hoge[a]!.compareTo(hoge[b]!));
    print(sortedMap);

{a: 1, c: 2}

LinkedHashMapを使う

    Map<String, int> hoge = {'a': 1, 'b':1, 'c':2  };
    final sortedKeys = hoge.keys.toList(growable:false)..sort((k1, k2) => hoge[k1]!.compareTo(hoge[k2]!));
    LinkedHashMap sortedMap = LinkedHashMap.fromIterable(sortedKeys, key: (k) => k, value: (k) =>hoge[k]);

    print(sortedMap);

{a: 1, b: 1, c: 2}

次にやること

コンピュータの処理が早すぎて何が起きているのかわからないのでわかるようにする

コメント

タイトルとURLをコピーしました