0354デフォルトの名無しさん (ワッチョイ 1701-Y+72)
2021/04/18(日) 22:32:00.04ID:iFUCsnCg0>プロパティ変更もあるけど、痛いのはVisible制御がないってことだよね
試したけど、一応こんな書き方(※)でいける。
bool _busyState = false;
void _execFunc() async {
setState(() { _busyState = true; } );
// 何か時間のかかる処理
setState(() { _busyState = false; } );
}
Widget build(BuildContext context) {
// 中略
child: Column(
children: <Widget>[
Text(_busyState ? "処理中":"今は何も実行してまへん"),
if(_busyState)
CircularProgressIndicator(),
ElevatedButton(
label: const Text('処理実行'),
onPressed: _execFunc,
),
],
),
// 中略
}
※ CircularProgressIndicator()直前のif()でウイジットの表示/非表示の制御。
ちなみにelse節は書けない(書くとエラー)。 またif() の後に { } も使えない。 Dartの言語仕様が場当たり的で一貫性がない。