🧩TextButton()
Что такое TextButton
TextButton
TextButton
в Flutter — это виджет, который представляет собой кнопку с текстом. Он используется для выполнения действий при нажатии на кнопку. Отличительной чертой TextButton
является то, что он не имеет видимого фона, что позволяет ему выглядеть более «плоским» по сравнению с другими типами кнопок, такими как ElevatedButton
или OutlinedButton
.
Пример использования
Вот пример использования TextButton
в приложении Flutter:

import 'package:flutter/material.dart';
class TextButtonExample extends StatelessWidget {
const TextButtonExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('TextButton Example')),
body: Center(
child: TextButton(
onPressed: () {
// Действие при нажатии на кнопку
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('TextButton Pressed!')),
);
},
onLongPress: () {
// Действие при длительном нажатии
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('Long Pressed!')),
);
},
child: const Text('Click Me'),
),
),
);
}
}
Как работает код
TextButton: Основной виджет кнопки с текстом.
onPressed: Функция, которая будет вызвана, когда кнопка будет нажата. В примере мы показываем уведомление.
onLongPress: Функция, которая будет вызвана при длительном нажатии на кнопку.
Зачем это нужно
TextButton
используется, когда вам нужно создать кнопку, которая выглядит как текст и не отвлекает внимание от содержимого. Это идеальный вариант для:
Создания кнопок с простым текстом, которые легко воспринимаются.
Предоставления пользователям возможностей для выполнения действий без навязывания визуального стиля.
Создания интерфейсов с более легким и минималистичным дизайном.
Все настройки TextButton
TextButton
required void Function()? onPressed
Описание: Функция, которая будет вызвана при нажатии на кнопку. Обязательный параметр.
Пример:
onPressed: () { print('Button Pressed'); // Действие при нажатии }
void Function()? onLongPress
Описание: Функция, которая будет вызвана при длительном нажатии на кнопку.
Пример:
onLongPress: () { print('Button Long Pressed'); // Действие при длительном нажатии }
void Function(bool)? onHover
Описание: Функция, которая будет вызвана, когда указатель мыши будет наведён на кнопку или убран с неё. Принимает
true
илиfalse
в зависимости от состояния.Пример:
onHover: (isHovered) { if (isHovered) { print('Hovered'); // Действие при наведении } }
void Function(bool)? onFocusChange
Описание: Функция, которая будет вызвана при изменении состояния фокуса кнопки.
Пример:
onFocusChange: (hasFocus) { if (hasFocus) { print('Button Focused'); // Действие при получении фокуса } }
ButtonStyle? style
Описание: Стиль кнопки, который позволяет настраивать её внешний вид, например, цвет, размеры, фон и т.д.
Пример:
style: TextButton.styleFrom( backgroundColor: Colors.grey[200], // Цвет фона )
FocusNode? focusNode
Описание: Указывает на узел фокуса, который используется для управления фокусом этой кнопки.
Пример:
focusNode: FocusNode() // Указатель на узел фокуса
bool autofocus = false
Описание: Если true, кнопка автоматически получит фокус, когда виджет будет построен.
Пример:
autofocus: true // Автофокус при загрузке
Clip? clipBehavior
Описание: Определяет, как будут обрабатываться элементы, выходящие за пределы кнопки. Может быть
Clip.hardEdge
,Clip.antiAlias
,Clip.none
.Пример:
clipBehavior: Clip.antiAlias // Обработка выхода элементов
WidgetStatesController? statesController
Описание: Позволяет контролировать состояние виджета в зависимости от различных событий.
Пример:
statesController: WidgetStatesController() // Контроллер состояний
bool? isSemanticButton = true
Описание: Указывает, является ли эта кнопка семантической. Используется для доступности.
Пример:
isSemanticButton: true // Семантическая кнопка
required Widget child
Описание: Дочерний виджет, который будет отображаться внутри кнопки. Обязательный параметр.
Пример:
child: Text('Button Text') // Текст кнопки
IconAlignment iconAlignment = IconAlignment.start
Описание: Определяет, где будет располагаться иконка (если она есть) относительно текста. Может быть
IconAlignment.start
,IconAlignment.end
.Пример:
iconAlignment: IconAlignment.end // Иконка справа от текста
Заключение
TextButton
— это простой и мощный инструмент для создания интерактивных интерфейсов в Flutter. Он идеально подходит для создания кнопок, которые не отвлекают внимание от содержимого, а также обеспечивают легкий и минималистичный вид. Настройки TextButton
позволяют тонко настраивать поведение и внешний вид кнопки в зависимости от ваших потребностей.
Last updated