Как изменить цвет кнопки при нажатии (flutter)?

Для изменения цвета кнопки при нажатии в Flutter вы можете использовать состояние виджета Button. Внутри состояния вы можете определить стандартный цвет кнопки и изменить его при нажатии.

  1. Создайте класс виджета, который наследует от StatefulWidget:
class CustomButton extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _CustomButtonState();
}
  1. Создайте приватный класс состояния для вашего виджета:
class _CustomButtonState extends State<CustomButton> {
  Color _buttonColor = Colors.blue; // задайте стандартный цвет кнопки

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTapDown: (tapDownDetails) {
        setState(() {
          _buttonColor = Colors.red; // измените цвет кнопки при нажатии
        });
      },
      onTapUp: (tapUpDetails) {
        setState(() {
          _buttonColor = Colors.blue; // верните стандартный цвет кнопки после отпускания
        });
      },
      child: Container(
        color: _buttonColor, // используйте текущий цвет кнопки
        child: Text('Button'),
      ),
    );
  }
}
  1. Используйте ваш кастомный виджет в других местах вашего приложения:
CustomButton(),

Теперь, при нажатии на кнопку, она будет менять цвет с синего на красный, а после отпускания снова станет синей.