Не меняется цвет в шапке мобильного приложения, созданного на Flutter

Рейтинг: 1Ответов: 1Опубликовано: 10.04.2023

Всем привет. Сейчас учусь делать приложения на Flutter и столкнулся с такой проблемой: у меня не изменяется цвет на шапке. Изначально я поставил оранжевый (deepOrangeAccesnt), но у меня все равно отображается голубой (в браузере Chrome). В чем может быть причина?

Код файла main:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(primaryColor: Colors.deepOrangeAccent),
      home: Scaffold(
        appBar: AppBar(title: Text('Title'),),
          body: Center(
              child: Text('Text is here...', style: TextStyle(
                  fontSize: 20,
                  color: Colors.lime,
                  fontFamily: 'Times New Roman'
              ),)
      ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {

          },
          child: Text('Press me'),
        ),

    ),
    );
  }

}

введите сюда описание изображения

Ответы

▲ 0

Самая простая альтернатива - использовать colorSchemeSeed:

ThemeData(colorSchemeSeed: Colors.deepOrangeAccent)

Почему так?

Если вы запустите приложение на android, вы заметите, что, например, у AppBar цвет синий, а у StatusBar (там где иконки, Wi-Fi, батарея) - темно-синий.

Получается, чтобы задать "основной цвет" всему приложению, нужно задать не просто 1 цвет, но и его оттенки для разных мест приложения, где он должен быть светлее/темнее.

Для упрощения работы, во Flutter есть colorSchemeSeed. Принцип его работы такой, что вы задаете цвет, а Flutter заполняет остальные оттенки сам, засветляя/затемняя цвет из colorSchemeSeed.

Но если все же хотите задать все оттенки вручную, используйте primarySwatch.