Я делаю приложение и для отображения кругового индикатора прогресса я использовал библиотеку modal_progress_hud, и когда я установил состояние inAsyncCall true или false, он перестраивает все свои дочерние виджеты внутри modal_progress_hud. И я не хочу перестраивать весь UI снова и снова. Это снижает эффективность приложения за счет увеличения использования графического процессора. Есть ли другой способ сделать его лучше, если мы просто изменим свойство и перестроим это свойство только виджета, а не всего экрана и виджетов внутри него.
bool circularindicator = false;
Color circularColor;
double circularOpacity;
child: ModalProgressHUD(
inAsyncCall: circularindicator,
child: body,
color: circularColor,
opacity: circularOpacity,
),
В теле у нас есть все виджеты в виде списка. И после нажатия кнопки входа мы вызвали метод showProgress (), установили состояние и перестроили виджет.
@override
showProgress() {
setState(() {
circularindicator = true;
circularOpacity = 0.5;
circularColor = Colors.grey;
});
}