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

Добавление ProgressBar
Вот как вы можете добавить виджет ProgressBar в свой проект:
- Добавьте виджет ProgressBar, перетащив его с вкладки Base Elements или непосредственно из дерева виджетов, и выровняйте его по центру.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства Progress Bar«.
- Найдите выпадающий список «Форма прогресс—бара» и установите круговую или линейную форму.
- Круговая: ProgressBar отображается в форме круга. Это форма по умолчанию, установленная для ProgressBar.
- Линейный: ProgressBar отображается в форме прямоугольника и располагается горизонтально на экране.
- Чтобы установить прогресс, найдите поле ввода Progress Value и введите значение от 0 до 1,0. Например, значение 0,3 заполнит 30% части ProgressBar.
- Чтобы изменить текст прогресса (отображается в центре), прокрутите вниз до раздела Text, найдите свойство Text и введите значение.

Настройка кругового прогрессбара
Панель свойств можно использовать для настройки внешнего вида и поведения кругового индикатора выполнения.
Изменение размера
Вы можете захотеть изменить размер по умолчанию кругового ProgressBar, чтобы он соответствовал вашему дизайну. Это можно сделать с помощью свойства Diameter.
Чтобы изменить размер кругового прогресс-бара, выполните следующие действия:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите к редактору свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства Progress Bar«.
- Найдите свойство Diameter. Теперь есть два способа изменить размер:
- Чтобы установить точный размер, выберите PX и введите нужные значения.
- Чтобы задать размер в % от размера экрана, выберите % и введите нужное значение.

Изменение толщины
Изменение свойства толщины позволяет изменять размер ленты прогресс-бара.
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства прогресс—бара«.
- Найдите свойство Thickness и введите значение.

Изменение угла начала
По умолчанию индикатор выполнения начинает заполнение прогресса с позиции верхнего центра (т.е. с 0 градусов). Однако вы можете настроить его так, чтобы он начинал заполнение прогресс-бара с определенного угла, используя свойство Start Angle.
Чтобы изменить угол начала:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства прогресс—бара«.
- Найдите свойство Start Angle (degree) и введите значение в градусах. Например, при вводе значения 90 индикатор выполнения заполняется справа. В то время как значение 180 заполняет индикатор выполнения снизу.

Настройка линейного прогресс-бара
Панель свойств можно использовать для настройки внешнего вида и поведения линейного индикатора прогресса.
Изменение размера
Вы можете изменить размер по умолчанию с помощью свойства Width.
Чтобы изменить размер линейного прогресс-бара, выполните следующие действия:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства Progress Bar«.
- Найдите свойство Width. Теперь есть два способа изменить размер:
- Чтобы установить точный размер, выберите PX и введите нужные значения.
- Чтобы задать размер в % от размера экрана, выберите % и введите нужное значение.

Изменение толщины
Изменение свойства thickness позволяет изменять высоту индикатора прогресса.
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства прогресс—бара«.
- Найдите свойство Thickness и введите значение.

Изменение радиуса конца
По умолчанию индикатор выполнения отображается в прямоугольной форме. Однако вы можете сделать ее округлой прямоугольной с помощью свойства End Radius.
Чтобы изменить радиус конца:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства Progress Bar«.
- Найдите свойство End Radius и введите значение

Общая настройка
Есть несколько общих настроек, которые вы можете сделать как для кругового, так и для линейного ProgressBar, например, анимация при загрузке страницы, изменение цвета и стилизация текста.
Анимация ProgressBar
Свойство Animate Progress позволяет вам определить, должен ли прогрессбар анимироваться при загрузке страницы.


Чтобы включить/выключить анимацию прогресс-бара:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела Свойства прогресс—бара.
- Найдите свойство Animate Progress и установите/снимите флажок, чтобы включить/выключить анимацию прогресс-бара при загрузке страницы.
Чтобы включить/выключить анимацию прогресс-бара:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела Свойства прогресс—бара.
- Найдите свойство Animate Progress и установите/снимите флажок, чтобы включить/выключить анимацию прогресс-бара при загрузке страницы.


Изменение цвета
Чтобы изменить цвет индикатора выполнения и фона:
- Выберите ProgressBar в дереве виджетов или в области холста.
- Перейдите в редактор свойств (в правой части экрана) и прокрутите вниз до раздела «Свойства индикатора выполнения«.
- Чтобы изменить цвет залитой части индикатора выполнения, найдите свойство Progress Color, нажмите на поле рядом с Unset, выберите цвет, а затем нажмите Use Color или нажмите Unset и введите шестнадцатеричный код напрямую. Вы также можете выбрать цвет, нажав на кнопку Палитра и просто.
- Аналогично, чтобы изменить цвет незаполненной части индикатора выполнения, найдите свойство Background Color и измените цвет.


Стилизация текста
Ниже приведены инструкции по стилизации текста.
Динамическая установка цвета
Посмотрите, как установить цвет из переменной в любое свойство цвета этого виджета.
Показать прогресс из данных Firestore
Возможно, вы используете Firstore для хранения данных вашего приложения в модели коллекция-документ. Давайте построим пример отображения значения прогресса в ProgressBar из данных Firestore.

Отображение прогресса из данных Firestore состоит из следующих шагов:
- Предварительные условия
- Запрос одного документа
- Создание пользовательской функции
- Отображение значения на ProgressBar
- Отображение значения в тексте ProgressBar
1. Необходимые условия
Прежде чем мы получим данные из Firestore, убедитесь, что вы выполнили все перечисленные предварительные условия, чтобы иметь некоторые данные в Firestore.
- Ознакомьтесь со структурированием базы данных Firebase.
- Выполните все шаги в разделе Firebase Setup для вашего проекта.
- Создайте коллекцию под названием Todos.
- Добавьте данные в коллекцию.
Запись/документ внутри коллекции должен выглядеть следующим образом:

2. Запрос одного документа
Запрос одного документа на странице помогает получить данные документа, которые могут содержать значение для отображения на ProgressBar.
Чтобы запросить отдельный документ на странице:
- Выберите страницу.
- Перейдите на вкладку Backend Query (в правой части экрана).
- Установите для параметра Query Type значение Query Collection.
- Прокрутите вниз, чтобы найти выпадающий список Collection и измените его на вашу коллекцию.
- Установите для параметра Query Type значение Single Documents.
- Нажмите на + Filter, чтобы найти точный документ/запись.
- Найдите Имя поля, нажмите на Снять и выберите поле, к которому вы хотите применить фильтр.
- Найдите выпадающий список Relation, нажмите на Unset и выберите отношение из списка.
- Найдите свойство Value и установите в нем подходящее значение.
- Нажмите кнопку Сохранить.

3. Создание пользовательской функции
Если вы сохранили значение прогресса, как показано в первом шаге, например 20, 30, 70, то вам нужно создать пользовательскую функцию, которая делит значение на 100 и возвращает результат в виде 0.2, 0.3, 0.7. Это поможет установить значение для свойства Progress Value.
Чтобы создать пользовательскую функцию:
- Определите функцию, дав ей соответствующее имя, добавьте тип возвращаемых данных Double, а затем создайте аргумент Argument с типом данных Integer. Инструкции по определению функции можно найти здесь.
- Добавьте код, который делит значение на 100. Инструкции по добавлению кода можно найти здесь.
- Протестируйте функцию, передав ей случайное значение. Инструкции по тестированию кода можно найти здесь.
- Нажмите кнопку Сохранить.
Код пользовательской функции:
import ‘dart:math’ as math;
double gerProgressValue(int percentage) {
return percentage / 100;
}

4. Отображение значения на ProgressBar
Чтобы показать прогресс на ProgressBar, необходимо вызвать пользовательскую функцию (созданную в предыдущем шаге) и передать значение из данных Firestore.
Чтобы показать значение на индикаторе прогресса:
- Выберите виджет ProgressBar, перейдите на панель свойств, найдите свойство Progress Value и нажмите на Set from Variable.
- Установите в качестве источника Custom Functions > Function Name (созданную в предыдущем шаге).
- В разделе Set Function Arguments нажмите на Argument Name (созданное при определении пользовательской функции), чтобы открыть раздел.
- Установите для параметра Источник значения значение Из переменной.
- Нажмите на UNSET и выберите Source as [имя_коллекции] Document и Available Options для поля, которое вы хотите показать.
- Нажмите кнопку Подтвердить.

5. Отображение значения в тексте ProgressBar
Текст индикатора выполнения появляется в центре ProgressBar. Поскольку вам нужно отобразить значение со знаком процента, например, 20%, 30% или 70%, вы должны объединить два текста. Первый текст — это данные Firestore, а второй текст — знак ‘%’.
Чтобы показать значение в тексте прогресс-бара:
- Выберите виджет ProgressBar, перейдите на панель свойств, найдите свойство Text и нажмите на Set from Variable.
- Выберите Источник > Объединить текст.
- Установите Текст 1 из переменной как [имя_коллекции] Документ и Доступные параметры в поле, которое вы хотите показать.
- Нажмите Добавить текст и введите значение в виде знака ‘%‘.
- Нажмите Подтвердить.

Добавление действия
Чтобы выполнить какое-либо действие по щелчку на ProgressBar, добавьте Action во FlutterFlow. Инструкции по добавлению Action вы можете найти здесь.
Показать/скрыть контейнер
Инструкции по отображению/скрытию виджета можно найти здесь