https://dart.dev/guides/language/language-tour#lists
listの中にifやforをまぜたり、...でlistを連結させられたりとか書いてあります。
面白そうなので、試してみるました。
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (_counter % 2 == 0)
Text(
'Count is even!',
),
if (_counter % 2 != 0)
for (var i = 0; i < _counter; i++) Text('This is $i'),
..._widgets(),
],
),
),
適当にこんな感じで入れるとエラーが出ます。2.2.2までサポートしていないよ。と。
Flutterの開発環境にはstable,master,dev.betaとあって、簡単に切り替えられるわけですが、stableで
$ flutter create [application name]
を実行するとpubspec.yamlの中のsdkversionが
sdk: ">=2.1.0 <3.0.0"
といった感じになります。
なので、2.2.2にすれば上記のコードも動作します。
サンプルはこんな感じです。
https://github.com/matsuhiro/flutter_dart_list_test
いつものfloating buttonをクリックするとcount upするやつです。
counterが偶数のときだけ「'Count is even!'」が表示されます。
奇数のときにはforで繰り返された文だけTextが表示されます。
最後に、適当にTextを関数からの戻り値で追加しています。
軽く使うなら便利だなと思いますが、たくさんWidgetを配置するならStatelessWidgetを作ったほうが良いのだろうとは思います。
0 件のコメント:
コメントを投稿