進捗が悪くなってきた気がする
もっとがんばります
今できているもの
ゲームの結果画面が表示されるようになりました
ゲームの結果画面を表示できるようにしました
— おとぼう (@otobou0320) August 6, 2021
Flutterで売れるアプリを作ってみようPart9 結果画面を表示する https://t.co/jyKAGGbS7P pic.twitter.com/ynD32mUqfg
学んだこと
「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}
次にやること
コンピュータの処理が早すぎて何が起きているのかわからないのでわかるようにする
コメント