Получить прогресс загрузки в Flutter с помощью потока событий

#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);
    }
)
  

Надеюсь, это решит вашу проблему.