Вызов функции только один раз с LayoutBuilder () - Flutter - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь изменить яркость иконки строки состояния, когда ограничение высоты внутри LayoutBuilder() равно < or = 100

_top = constraints.biggest.height

if (_top <= 100) {
   myCustomsystemOverlaysColorsFunction(statusWhiteIcons: false);
} 
else {
   myCustomsystemOverlaysColorsFunction(statusWhiteIcons: true);
}

, но я вижу, что функция вызывается много раз из-за метода builder , Так как я могу вызвать функцию только один раз, когда значки строки состояния должны быть перекрашены?

1 Ответ

1 голос
/ 30 апреля 2020

Редактировать

Поддерживать состояние с помощью bool

bool statusBarChanged = false

changeStatusBar(){
 if(!statusBarChanged){
  statusBarChanged = true;
  //proceed with changing color
 }
}

вызвать вышеуказанную функцию из компоновщика макетов

или вы можете изменить цвет используя MediaQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...