この記事では、Flutterのボタンウィジェットプロパティ使い分けについて書いていきます。
プロパティ
| プロパティ名 | 概要・役割 | コード例 |
|---|---|---|
| onPressed | タップ(クリック)時の処理。 null にするとボタンが無効化(disabled)されます。 | onPressed: () { print(‘Tap’); } |
| onLongPress | 長押し時の処理。 長押しした時だけに実行したい特殊な操作を指定します。 | onLongPress: () { print(‘Long’); } |
| onHover | マウスカーソルが乗った/離れた時の処理。 Webやデスクトップ向けアプリで利用されます。 | onHover: (isHovered) { … } |
| onFocusChange | フォーカス(選択状態)が当たった/外れた時の処理。 キーボード操作時などの検知に使います。 | onFocusChange: (hasFocus) { … } |
| style | 背景色、文字色、影、形状(角丸)、サイズなど見た目全般を一括設定します。 | style: ElevatedButton.styleFrom(…) |
| focusNode | キーボードやゲームパッドからのフォーカス制御を明示的に行う際に指定します。 | focusNode: myFocusNode |
| autofocus | 画面が開いた際に最初からこのボタンにフォーカスを当てるかどうか(true / false)。 | autofocus: true |
| clipBehavior | ボタンの枠線からはみ出たコンテンツの切り取り(クリッピング)方法を指定します。 | clipBehavior: Clip.antiAlias |
簡単な例
ElevatedButton(
onPressed: () { print(‘Tap’); }
)完全なコードの例
import 'package:flutter/material.dart';
void main() {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
print('Tap');
},
child: const Text('タップしてください'),
),
),
),
);
}
}
