Open2

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

muranakarmuranakar
  1. styleプロパティを使用する
ElevatedButton(
  style: ElevatedButton.styleFrom(
    foregroundColor: Colors.red, // リップルエフェクトの色
  ),
  onPressed: () {},
  child: Text('ボタン'),
)
muranakarmuranakar
  1. 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)を調整することで、リップルエフェクトの濃さも制御できます。