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

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

1. Создайте класс виджета, который наследует от StatefulWidget:

class CustomButton extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _CustomButtonState();
}

2. Создайте приватный класс состояния для вашего виджета:

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'),
      ),
    );
  }
}

3. Используйте ваш кастомный виджет в других местах вашего приложения:

CustomButton(),

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