見出し画像

[Flutter] floatingActionButton ボタン押下の onPressed の処理を複数行書きたい場合

たまに記載してしまうFlutterの記事です。
一応Flutterについてザックリ五七五で説明するとこんな感じ

フラッター 何でも動く アプリになる

さて、分かったことを書いていきます。

ボタンを押したときに複数の処理を実行したい

今回やりたいことは、
デフォルトのプログラムを書き換えて、ボタンを押したら発動する処理に複数の処理を実行させたい!

元のコードはこれ。
onPressedというのが、ボタン押下で実行されるイベントで、
ボタンを押すとカウントが増えていく関数(_incrementCounter)が設置されています。

    floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter, //カウンター
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.

onPressed: function_1,

これを複数行にするには

onPressed: () {
      function_1;
      function_2;
},

というふうに書くようだ。()のあとに{}で処理をくくる。

    floatingActionButton: FloatingActionButton(
        onPressed: () {
          _incrementCounter; //カウンター
          functionTest; //追加処理
        },
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.

エラーは出ないが、実行してボタンを押下してみると
修正前に出来ていたカウントアップがされない。

右下のボタンを押してもセンターのカウンターが増えなくなってしまった

ログを処理の前後に埋め込んでみると出力されているので、
通っているので追加した処理も実行はされている模様。

調べた結果、この複数行を書く書き方だと、関数にカッコが必要になるようだ。エラーもないけど処理されてないってどういうことだろう。。。

onPressed: () {
      function_1();
      function_2();
},

    floatingActionButton: FloatingActionButton(
        onPressed: () {
          _incrementCounter(); //カウンター
          functionTest(); //追加処理
        },
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.

複数にするだけで、形式がいろいろ変わって難しいですね。


いいなと思ったら応援しよう!