#android #ios #swift #flutter #dart
#Android #iOS #swift #flutter #dart
Вопрос:
Я пытаюсь реализовать индикатор прогресса загрузки с помощью CircularProgressIndicator в приложении Flutter. Проблема в том, что последний разработчик реализовал функциональность загрузки с использованием eventChannel, и мне нужна помощь в том, как получить данные о ходе загрузки для использования в качестве параметра значения для CircularProgressIndicator. Любая помощь была бы высоко оценена.
Ответ №1:
1. Создайте канал:
const eventChannel = EventChannel('name_of_channel');
2. Получите широковещательный поток для получения событий на этом канале:
final progress$ = eventChannel.receiveBroadcastStream() as Stream<double>; // this stream emits values from 0.0 to 1.0.
Метод Stream receiveBroadcastStream ([dynamic arguments])
также принимает параметр arguments
, который вы можете передать на основе собственного кода.
3. Создайте виджет на основе потока выполнения:
StreamBuilder<double>(
initialData: 0,
stream: progress$,
builder: (context, snapshot) {
final progress = snapshot.data;
return CircularProgressIndicator(value: progress);
}
)
Надеюсь, это решит вашу проблему.