Проект
Привет, я создал с помощью flutter простое приложение, которое изменяет высоту контейнера с помощью streambuilder на основе вертикального перетаскивания пользователем.
Так как обновления, вводимые пользователем, выполняются очень быстро, это заставляет потоковый движок перестраиваться несколько раз, создавая эффект анимации.
Код
final StreamController streamController = StreamController<double>();
double height = 0.0;
StreamBuilder(
initialData: 0.0,
stream: streamController.stream,
builder: (context, snapshot) {
return Container(
height: snapshot.data,
);
},
),
....
height += (dragUpdateDY);
streamController.add(height);
Проблема
Несмотря на то, что код работает так, как задумано, я продолжаю думать, что это не лучшее решение, потому что оно заставляет пользовательский интерфейс перестраивать непредсказуемое количество времени в секунду, может быть, даже более 60 раз, превышая частоту обновления дисплея.
Есть ли способ лучше?