Open2
ElevatedButtonのリップルエフェクト(タップ時の波紋エフェクト)の色を変更する方法

- styleプロパティを使用する
ElevatedButton(
style: ElevatedButton.styleFrom(
foregroundColor: Colors.red, // リップルエフェクトの色
),
onPressed: () {},
child: Text('ボタン'),
)

-
ButtonStyle
を使用してより詳細に制御する方法:
ElevatedButton(
style: ButtonStyle(
overlayColor: MaterialStateProperty.resolveWith<Color?>(
(Set<MaterialState> states) {
if (states.contains(MaterialState.pressed)) {
return Colors.red.withOpacity(0.5); // プレス時のリップル色
}
if (states.contains(MaterialState.hovered)) {
return Colors.blue.withOpacity(0.2); // ホバー時の色
}
return null;
},
),
),
onPressed: () {},
child: Text('ボタン'),
)
overlayColor
を使用すると、以下の状態ごとに異なる色を設定できます:
-
MaterialState.pressed
: タップ/プレス時 -
MaterialState.hovered
: ホバー時 -
MaterialState.focused
: フォーカス時
また、透明度(opacity)を調整することで、リップルエフェクトの濃さも制御できます。