Как применить hover к textbutton flutter?

В Flutter есть несколько способов применения hover к TextButton. Один из них - использование MouseRegion.

MouseRegion позволяет обнаружить вход и выход курсора мыши из области виджета. Мы можем использовать эту информацию для изменения внешнего вида кнопки при наведении курсора.

Сначала вам понадобится импортировать пакет flutter/rendering.dart и создать переменную для хранения информации о наведении, например:

import 'package:flutter/rendering.dart';

bool _isHovered = false;

Затем вы можете использовать MouseRegion вокруг TextButton и обновить значение _isHovered в обработчиках событий onEnter и onExit:

MouseRegion(
  onEnter: (event) => setState(() => _isHovered = true),
  onExit: (event) => setState(() => _isHovered = false),
  child: TextButton(
    onPressed: () {
      // обработчик нажатия
    },
    child: Text('Кнопка'),
    style: TextButton.styleFrom(
      foregroundColor: _isHovered ? Colors.red : Colors.black,
    ),
  ),
)

В этом примере мы используем метод setState, чтобы перестроить виджет и обновить значение _isHovered в соответствии с событиями onEnter и onExit.

Значение _isHovered используется в свойстве foregroundColor для определения цвета текста кнопки. Если _isHovered равно true, цвет текста будет изменен на красный; в противном случае, он будет черным.

Наконец, когда пользователь нажимает на кнопку, будет вызван обработчик onPressed, в котором вы можете выполнять некоторую логику.

Это один из способов применения hover к TextButton в Flutter. Вы также можете использовать другие методы, включая использование анимаций или пакетов сторонних разработчиков для более сложных эффектов наведения.