Flutterの小ネタ

👍 Widgetをif文で制御できる

Row(
  mainAxisAlignment: MainAxisAlignment.spaceAround,
  children: [
    if (isVisible)
      FloatingActionButton(
        child: const Icon(Icons.close),
        onPressed: () {},
      ),
    FloatingActionButton(
      child: const Icon(Icons.check),
      onPressed: () {},
    ),
  ],
);

こういった状況で三項演算子を使うやり方が考えられるが、その場合空のWidget(例えばContainer())とかを記述することになるが、この場合表示はなくとも要素として領域は確保されてしまう。

そのため2つの要素を等分の横並びにして、片方が非表示の場合はもう片方を真ん中へ、みたいなことができない。それを実現するためにif文制御が便利。