ログインエラー時にエラーメッセージを表示する際など、パーツの表示/非表示を切り替えたい時の実装方法をいくつか紹介します。
Visibilityを使用するパターン
Visibility(
visible: isVisible,
child: Text('エラーです。'),
)
上記のようにVisibility
を使用し、visible:
にtrueを設定すると表示、visible:
にfalseを設定すると非表示になります。
非表示の時は表示エリアはなくなり他のパーツが詰めて表示されます。
非表示の時も表示エリアを確保し続けたい場合は以下のようにmaintainSize: true
を設定します。
Visibility(
visible: isVisible,
maintainSize: true,
child: Text('エラーです。'),
)
Visibility class
https://api.flutter.dev/flutter/widgets/Visibility-class.html
Offstageを使用するパターン
Visibilityとほとんど同じようなものなのですが、Offstageというものもあります。使い方も以下のようにVisibilityとそっくりです。
Offstage(
offstage: isVisible,
child: Text('エラーです。'),
)
Visibilityとの使い分けをどうすればいいか悩む…。
Offstage class
https://api.flutter.dev/flutter/widgets/Offstage-class.html
AnimatedOpacityを使用するパターン
上記のVisibility以外の方法としてはAnimatedOpacity
を使用しパーツを透明にすると言う方法もあります。あくまでも透明にするだけなので、表示エリアを確保し続けられます。
AnimatedOpacity(
opacity: isVisible ? 0.0 : 1.0,
duration: Duration(milliseconds: 100),
child: Text('エラーです。'),
)
AnimatedOpacity class
https://api.flutter.dev/flutter/widgets/AnimatedOpacity-class.html
コメント