はじめに
ボタンを非活性にする方法としてonPressed
にnull
を渡す方法があります。
が、、、
null
を渡してもボタンの色が灰色に変わらないやんけーーー!!!
という事態に陥って、ちょっとハマってしまったのでここに記録したいと思います!
三項演算子の位置が間違っていた。。
ElevatedButton(
onPressed: () {
_inProgress ? null : decidePosition();
},
child: const Text('次へ!'),
),
特定の処理(今回の場合decidePosition()
)をしている最中に_inProgress
がtrue
の時null
を渡し、ボタンが連打できないように非活性にしたかったです。
しかし、👆のコードでは非活性になりませんでした。。。
なぜだ????と思ったが、めっちゃうっかりミスしてました!
ElevatedButton(
onPressed: null,
child: const Text('次へ!'),
)
👆の場合は非活性になり、しっかりボタンの色が灰色に変化します。
ということは、、、、
ElevatedButton(
onPressed: _inProgress
? null
: () => decidePosition(),
child: const Text('次へ!'),
),
これで無事_inProgress
がtrue
の時ボタンを非活性にし灰色に変化させることができました。。。