ボタンを表示

このページのゴール

  • ボタンを表示するためのWidgetの扱いを知る

TextButton・OutlinedButton・ElevatedButton

基本的なボタン表示用Widgetとしては以下の3種類があります。

  • TextButton
    • 影のないボタン
  • OutlinedButton
    • 枠線のあるボタン
  • ElevatedButton
    • 影のあるボタン

ボタンを表示する

各ボタン表示用Widgetの基本的な使い方としては、
child にボタン内に表示したいWidgetを指定し、
onPressed にタップされた時の処理を指定すればOKです 👍

TextButton(
  onPressed: () { /* ボタンがタップされた時の処理 */ },
  child: Text('click here'),
)
OutlinedButton(
  onPressed: () { /* ボタンがタップされた時の処理 */ },
  child: Text('click here'),
)
ElevatedButton(
  onPressed: () { /* ボタンがタップされた時の処理 */ },
  child: Text('click here'),
)

押せなくする

ボタンを押せないようにする(無効化)する時は、onPressednull を指定すればOKです 👍
ボタンが押せるときと押せないときでデザインが自動的に切り替わったりします。

TextButton(
  onPressed: () { /* ボタンが押せる時 */ },
  child: Text('押せるよ'),
)
OutlinedButton(
  onPressed: null,
  child: Text('押せないよ'),
)

テーマ色を変える

各ボタンのテーマ色を変えるときは style を指定すればOKです 👍

TextButton(
  onPressed: () { /* ボタンが押せる時 */ },
  style: TextButton.styleFrom(
    primary: Colors.red,
  ),
  child: Text('押せるよ'),
)
OutlinedButton(
  onPressed: () { /* ボタンが押せる時 */ },
  style: OutlinedButton.styleFrom(
    primary: Colors.red,
  ),
  child: Text('押せるよ'),
)
ElevatedButton(
  onPressed: () { /* ボタンが押せる時 */ },
  style: ElevatedButton.styleFrom(
    primary: Colors.red,
  ),
  child: Text('押せるよ'),
)

影の深さを変える

ElevatedButton の影の深さを変えるときは elevation を指定すればOKです 👍

ElevatedButton(
  onPressed: () { /* ボタンが押せる時 */ },
  style: ElevatedButton.styleFrom(
    primary: Colors.red,
    elevation: 16,
  ),
  child: Text('押せるよ'),
)

使ってみる

実際に使ってみるとこんな感じになります。
👇 色々と書き換えて動かしてみましょう 💪💪💪

この他にも、色々と機能はあるので気になるときは公式ドキュメントを見てみましょう 👀

IconButton

アイコンボタンを表示する

アイコンボタンを表示する時は IconButton を使えばOKです 👍

IconButton(
  onPressed: () {},
  // 表示アイコン
  icon: Icon(Icons.thumb_up),
  // アイコン色
  color: Colors.pink,
  // サイズ
  iconSize: 64,
)

テキスト+アイコンボタンを表示する

テキストとアイコンを含めたボタンを表示する時は、
TextButton.iconOutlinedButton.iconElevatedButton.icon を使えばOKです 👍

基本的な使い方は TextButtonOutlinedButtonElevatedButton と同じですが、
icon でアイコンを指定し、label でテキストを指定する部分が異なってます 🤔

TextButton.icon(
  onPressed: () {},
  icon: Icon(Icons.thumb_up),
  label: Text('Good'),
)
OutlinedButton.icon(
  onPressed: () {},
  icon: Icon(Icons.favorite),
  label: Text('Like'),
)
ElevatedButton.icon(
  onPressed: () {},
  icon: Icon(Icons.flight),
  label: Text('Flight'),
)

使ってみる

実際に使ってみるとこんな感じになります。
👇 色々と書き換えて動かしてみましょう 💪💪💪

この他にも、色々と機能はあるので気になるときは公式ドキュメントを見てみましょう 👀

FloatingActionButton

FloatingActionButtonを表示する

マテリアルデザインを採用したアプリで表示されるFloatingActionButtonを表示する時は、
FloatingActionButton を使えばOKです 👍

ScaffoldfloatingActionButton に指定することで手軽に表示できます。

Scaffold(
  floatingActionButton: FloatingActionButton(
    backgroundColor: Colors.green,
    onPressed: () {},
    child: Icon(Icons.add),
  ),
)

使ってみる

実際に使ってみるとこんな感じになります。
👇 色々と書き換えて動かしてみましょう 💪💪💪

この他にも、色々と機能はあるので気になるときは公式ドキュメントを見てみましょう 👀

まとめ

  • 基本的なボタンは TextButtonOutlinedButtonElevatedButton Widgetを使えばOK
  • アイコンボタンは IconButton Widgetを使えばOK
  • アイコン+テキストボタンは TextButton.iconOutlinedButton.iconElevatedButton.icon Widgetを使えばOK
  • FloatingActionButton を使う時は Scaffold と組み合わせればOK

次は、リストを表示するためのWidgetを紹介していきます 💪💪💪

参考情報