👨‍💻
Flutter
  • 👨‍💻Flutter lessons
    • 🎨Flutter ui
      • 🚵‍♂️Travel app
        • 📱1. Lesson
        • 📱2.Lesson
      • 📚Books store
      • 🧑‍⚕️Doctor app
      • 🚖Taxi app
    • 🐦Основы Flutter
      • Page 1
      • Page 2
      • 🧑‍🏫Урок 1: Основные виджеты Flutter
        • Page
        • 🧩Container()
        • 🧩AppBar()
        • 🧩Text()
        • 🧩Icon()
        • 🧩Column()
        • 🧩Row()
        • 🧩TextButton()
        • 🧩ElevatedButton()
      • 🧑‍🏫Урок 2: Создаем UI
      • 🧑‍🏫Урок 3: Создаем UI
      • 🧑‍🏫Урок 4: Создаем UI
    • 🧩Основы dart
      • 🧑‍🏫01. Переменные часть 1
      • 🧑‍🏫01. Переменные часть 2
      • 🧑‍🏫02. Функции
      • 🧑‍🏫03. Условные операторы
      • 🧑‍🏫04. List
      • 🧑‍🏫05. Map
      • 🧑‍🏫06. Class
      • 🧑‍🏫07. Наследование
      • 🧑‍🏫08. Абстракция
      • 🧑‍🏫09. Интерфейсы
      • 🧑‍🏫10. Инкапсуляция
      • 🧑‍🏫11. Mixin
      • 🧑‍🏫12. Асинхронное программирование
      • 🧑‍🏫13. Streams
      • 🎯Final project
        • 🥦Grocery app
        • 🏠Home
    • ⚒️State management
      • ⬛Bloc
        • 1. Введение cubit
          • 1.1 Пример
          • 1.2 Пример
          • 1.3 Пример
          • 1.4 Пример
          • 1.5 Пример
        • 2. Введение в Bloc
      • 🌊Riverpod
    • 🏠Architechture
      • Clean Architechture
      • Bloc
    • 📲Locale storage
      • 🐝Hive
        • 🐝Ui
        • 🐝Hive - локальное хранилище: Введение
        • 🐝Hive - task app: часть 1
        • 🐝Hive - task app: часть 2
        • 🐝Hive - task app: часть 3
        • 🐝Hive - task app: часть 4
        • 🐝Hive - task app: часть 5
      • 🟩Sql
    • 📡Server
      • 📡Server - Lesson01 introduction
      • 📡Server - Lesson02 get data
      • 📡Server - Lesson03 News App get data
    • 🖥️Готовый backend
      • Firebase
      • Supabase
  • 🎯Dart practise
    • 🧑‍💻Переменные
      • 🧑‍💻String
      • 🧑‍💻int
      • 🧑‍💻double
      • 🧑‍💻bool
    • 🧑‍💻Функции
      • 🧑‍💻Обычные функции
      • 🧑‍💻Порядковые параметры
      • 🧑‍💻Обязательные параметры
      • 🧑‍💻Параметры по умолчанию
      • 🧑‍💻Функции-стрелки
      • 🧑‍💻Возвращаемые функции
    • 🧑‍💻Условные операторы
      • 🧑‍💻if/else
      • 🧑‍💻switch/case
      • 🧑‍💻тернарный оператор
    • 🧑‍💻Структура данных
      • 🧑‍💻List
      • 🧑‍💻Map
      • 🧑‍💻Set
    • 🧑‍💻ООП
  • 🧩Flutter Widgets
    • 💻Все виджеты
    • 🎞️Анимации
      • 🧩AnimatedContainer
      • 🧩AnimatedOpacity
      • 🧩AnimatedAlign
      • 🧩AnimatedCrossFade
      • 🧩Hero
      • 🧩AnimatedBuilder
      • 🧩AnimatedPositioned
      • 🧩AnimatedSwitcher
    • 🏗️Манипуляция пространством
      • 🧩Padding
      • 🧩SizedBox
      • 🧩Align
      • 🧩Center
      • 🧩Expanded
      • 🧩Flexible
      • 🧩Spacer
      • 🧩Column
      • 🧩Stack
      • 🧩Row
    • ✍️Отображение текста
      • 🧩RichText
      • 🧩FittedBox
      • 🧩SelectableText
      • 🧩Text
    • 📸Отображение изображений
      • 🧩Image()
      • 🧩Image.network
      • 🧩Image.asset
      • 🧩Image.file
      • 🧩Image.memory
      • 🧩FadeInImage
      • 🧩NetworkImage
      • 🧩AssetImage
    • 📃Списки и прокрутка
      • 🧩ListView()
      • 🧩ListView.builder()
      • 🧩GridView()
      • 🧩GridView.builder()
      • 🧩PageView()
      • 🧩SingleChildScrollView
      • 🧩CustomScrollView
      • 🧩ReorderableListView
      • 🧩NestedScrollView
    • ⌨️Кнопки
      • 🧩TextButton()
      • 🧩ElevatedButton()
      • 🧩IconButton()
      • 🧩DropDownButton()
      • 🧩FloatingActionButton
      • 🧩Checkbox
      • 🧩Radio
      • 🧩Switch
      • 🧩Slider
    • 📝Формы и ввод данных
      • 🧩TextField()
      • 🧩TextFormField
      • 🧩Form
      • 🧩FormField
      • 🧩DatePicker
      • 🧩TimePicker
    • 🧑‍🏫Диалоги и всплывающие окна
      • 🧩AlertDialog
      • 🧩SimpleDialog
      • 🧩BottomSheet
      • 🧩ExpansionPanel
      • 🧩SnackBar
      • 🧩PopupMenuButton
      • 🧩Tooltip
      • 🧩Dialog
    • 🛣️Навигация
      • 🧩BottomNavigationBar()
      • 🧩Navigator
      • 🧩Drawer
      • 🧩TabBar
    • 📱Отображение на экране
      • 🧩Scaffold
      • 🧩Container()
      • 🧩AppBar()
      • 🧩Icon()
      • 🧩Stepper()
  • 🎮Flutter Flame
    • Введение в разработку игр
  • 🔬Flutter projects
  • 🧑‍🎓Homeworks for everyday
    • 🧑‍🎓0. Переменные
    • 🧑‍🎓1. Функции - 1
    • 🧑‍🎓2. Функции - 2
    • 🧑‍🎓3. Условные операторы
    • 🧑‍🎓4. List
    • 🧑‍🎓5. Map
    • 🧑‍🎓6. class
    • 🐝Hive -
    • 🐝Hive clean architecture
    • 📡HTTP
    • 📡HTTP clean architecture
    • 💾Firebase
    • 💾Firebase clean architecture
Powered by GitBook
On this page
  1. Flutter Widgets
  2. Кнопки

IconButton()

PreviousElevatedButton()NextDropDownButton()

Last updated 6 months ago

Что такое IconButton

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

Пример использования

Вот пример того, как можно использовать IconButton в приложении Flutter:

import 'package:flutter/material.dart';

class IconButtonExample extends StatelessWidget {
  const IconButtonExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('IconButton Example')),
      body: Center(
        child: IconButton(
          icon: const Icon(Icons.favorite), // Иконка
          tooltip: 'Favorite', // Подсказка при наведении
          onPressed: () {
            // Действие при нажатии
            ScaffoldMessenger.of(context).showSnackBar(
              const SnackBar(content: Text('Favorite clicked!')),
            );
          },
        ),
      ),
    );
  }
}

Как работает код

  1. IconButton: Основной виджет кнопки, отображающий иконку.

  2. icon: Определяет, какую иконку будет отображать кнопка. В примере мы используем иконку сердечка.

  3. onPressed: Функция, которая будет вызвана, когда кнопка будет нажата. Здесь мы показываем уведомление.

  4. tooltip: Текст, который будет отображаться, когда пользователь наведёт курсор на кнопку.

Зачем это нужно

IconButton удобно использовать, когда вы хотите создать интуитивно понятные действия, которые не требуют текста. Это помогает сократить место на экране и позволяет пользователю быстро понять, что означает каждая кнопка, исходя из её иконки. Применяется в случаях, когда важна компактность интерфейса, например:

  • В строках инструментов.

  • В меню навигации.

  • В качестве действий в карточках и списках.

Все настройки IconButton

  1. double? iconSize

    • Описание: Размер иконки. Если не указан, используется значение по умолчанию.

    • Пример:

      iconSize: 30.0 // Установка размера иконки
  2. VisualDensity? visualDensity

    • Описание: Определяет плотность визуальных элементов. Может использоваться для настройки расстояния между элементами.

    • Пример:

      visualDensity: VisualDensity(horizontal: 0, vertical: -2) // Плотность визуальных элементов
  3. EdgeInsetsGeometry? padding

    • Описание: Отступы вокруг иконки внутри кнопки. Позволяет настроить пространство вокруг иконки.

    • Пример:

      padding: EdgeInsets.all(10.0) // Отступы вокруг иконки
  4. AlignmentGeometry? alignment

    • Описание: Определяет выравнивание иконки внутри кнопки. Полезно, если вы хотите изменить позицию иконки.

    • Пример:

      alignment: Alignment.center // Центрирование иконки
  5. double? splashRadius

    • Описание: Радиус эффекта всплеска при нажатии. Определяет, насколько далеко будет распространяться эффект при нажатии.

    • Пример:

      splashRadius: 20.0 // Установка радиуса всплеска
  6. Color? color

    • Описание: Цвет иконки. Позволяет изменить цвет в зависимости от состояния.

    • Пример:

      color: Colors.red // Установка цвета иконки
  7. Color? focusColor

    • Описание: Цвет, который будет использоваться, когда кнопка в фокусе.

    • Пример:

      focusColor: Colors.blue // Цвет при фокусе
  8. Color? hoverColor

    • Описание: Цвет, который будет использоваться, когда пользователь наводит курсор на кнопку.

    • Пример:

      hoverColor: Colors.green // Цвет при наведении
  9. Color? highlightColor

    • Описание: Цвет, который будет использоваться при нажатии на кнопку.

    • Пример:

      highlightColor: Colors.yellow // Цвет при нажатии
  10. Color? splashColor

    • Описание: Цвет эффекта всплеска при нажатии на кнопку.

    • Пример:

      splashColor: Colors.blueAccent // Цвет всплеска
  11. Color? disabledColor

    • Описание: Цвет, который будет использоваться, когда кнопка отключена.

    • Пример:

      disabledColor: Colors.grey // Цвет для отключённого состояния
  12. required void Function()? onPressed

    • Описание: Функция, которая будет вызвана при нажатии на кнопку. Обязательный параметр.

    • Пример:

      onPressed: () {
        print('IconButton Pressed'); // Действие при нажатии
      }
  13. MouseCursor? mouseCursor

    • Описание: Курсор мыши, который будет отображаться, когда пользователь наводит курсор на кнопку.

    • Пример:

      mouseCursor: SystemMouseCursors.click // Курсор при наведении
  14. FocusNode? focusNode

    • Описание: Указывает на узел фокуса для управления фокусом этой кнопки.

    • Пример:

      focusNode: FocusNode() // Указатель на узел фокуса
  15. bool autofocus = false

    • Описание: Если true, кнопка автоматически получит фокус при загрузке.

    • Пример:

      autofocus: true // Автофокус при загрузке
  16. String? tooltip

    • Описание: Текст подсказки, который будет отображаться при наведении на кнопку.

    • Пример:

      tooltip: 'Click me' // Подсказка при наведении
  17. bool? enableFeedback

    • Описание: Указывает, нужно ли предоставлять тактильную обратную связь при нажатии.

    • Пример:

      enableFeedback: true // Включение тактильной обратной связи
  18. BoxConstraints? constraints

    • Описание: Ограничения для размера кнопки. Позволяет задать максимальные и минимальные размеры.

    • Пример:

      constraints: BoxConstraints(maxWidth: 100, maxHeight: 100) // Ограничения по размеру
  19. ButtonStyle? style

    • Описание: Стиль кнопки, который позволяет настраивать её внешний вид.

    • Пример:

      style: IconButton.styleFrom(
        backgroundColor: Colors.blue // Установка фона кнопки
      )
  20. bool? isSelected

    • Описание: Указывает, выбрана ли кнопка. Используется для визуального изменения состояния.

    • Пример:

      isSelected: true // Установка состояния выбора
  21. Widget? selectedIcon

    • Описание: Иконка, которая будет отображаться, когда кнопка выбрана.

    • Пример:

      selectedIcon: Icon(Icons.favorite) // Иконка для выбранного состояния
  22. required Widget icon

    • Описание: Обязательный параметр, который указывает, какую иконку будет отображать кнопка.

    • Пример:

      icon: Icon(Icons.favorite) // Установка иконки

Заключение

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

🧩
⌨️
🧩