Примечание: для этого требуется более поздняя версия Flutter, поскольку она ссылается на API, добавленные за последнюю неделю .
Вы можете создать пользовательский SystemUiOverlayStyle
, используя конструктор по умолчанию. Цвет системной навигационной панели определяется там. Но чтобы избежать установки большого количества нулевых значений, используйте метод copyWith
, чтобы обновить значения из существующей светлой / темной темы.
const mySystemTheme= SystemUiOverlayStyle.light
.copyWith(systemNavigationBarColor: Colors.red);
Вы можете установить цвет системной навигации с помощью статических методов SystemChrome
.
SystemChrome.setSystemUiOverlayStyle(mySystemTheme);
Однако, если у вас есть несколько виджетов, которые устанавливают это значение, или используете материал AppBar или Cupertino NavBar, ваше значение может быть перезаписано ими. Вместо этого вы можете использовать новый API AnnotatedRegion, чтобы сказать флаттеру, что он автоматически переключается на этот стиль каждый раз, когда виджеты видны. Например, если вы хотите использовать вышеуказанную тему в любое время, когда вы находитесь на определенном маршруте, вы можете обернуть ее в виджет AnnotatedRegion, например, так.
Widget myRoute(BuildContext context) {
return new AnnotatedRegion<SystemUiOverlayStyle>(
value: mySystemTheme,
child: new MyRoute(),
);
}
Этот не изменит вашу тему обратно на предыдущее значение, если вы выберете маршрут, однако