Итак, я хочу динамически изменить systemNavigationBarColor и statusBarColor. Вот моя попытка:
void systemColors(Orientation orientation) {
print('orientation changed -> $orientation');
if (orientation == Orientation.portrait) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
systemNavigationBarColor: Colors.blue,
statusBarColor: Colors.green,
),
);
} else {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
systemNavigationBarColor: Colors.green,
statusBarColor: Colors.blue),
);
}
Теперь эта функция вызывается каждый раз при изменении ориентации перед оператором return, возвращающим Scaffold, внутри функции построения StatelessWidget; Я пробовал StatefulWidget с теми же результатами.
Логи это подтверждают. Ориентация, переданная в функцию, также является правильной.
Однако пользовательский интерфейс обновляется только один раз, при первом вызове функции, в портретной или альбомной ориентации, и пользовательский интерфейс обновляется с помощью указанные цвета для каждого сценария.
При изменении ориентации, хотя функция вызывается, пользовательский интерфейс не обновляется.
Есть идеи, почему?
Заранее спасибо: )