Невозможно переопределить ThemeData - PullRequest
0 голосов
/ 03 августа 2020

Я хочу иметь другой цвет фона в MenuPage. Я пытаюсь переопределить themeData - я следил за учебником themeData с официальной страницы flutter, но не могу получить результат. У вас есть какие-нибудь предложения?

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

final ThemeData _themeData = new ThemeData( // app theme
        scaffoldBackgroundColor: darkNavy,
        canvasColor: lightNavy,
        accentColor: lightNavy,
        primarySwatch: Colors.grey,
        appBarTheme: AppBarTheme(
            color: darkNavy,
            brightness: Brightness.dark,
            elevation: 10,
            iconTheme: IconThemeData(
              color: lightGrey,
            ),
            textTheme: TextTheme(
                headline6: GoogleFonts.crimsonPro(
                    color: darkGrey,
                    fontSize: 20,
                    fontWeight: FontWeight.w400))),
      
);



class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
    ]);

    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: _themeData,
      home: HomeScreen(),
    );
  }
}

class MenuDashBoard extends StatefulWidget {

  @override
  _MenuDashBoardState createState() => _MenuDashBoardState();
}

class _MenuDashBoardState extends State<MenuDashBoard> {
  @override
  Widget build(BuildContext context) {
    return Theme(
        data: ThemeData(
              canvasColor: lightNavy,
              scaffoldBackgroundColor: lightNavy
            ),
      
      child: Scaffold(
        body: Container(
            padding: EdgeInsets.only(top: 30, bottom: 30, left: 20),
            child: Column(

Мой главный домашний экран имеет темно-синий фон, я хочу, чтобы на моей странице меню был светло-синий.

1 Ответ

0 голосов
/ 03 августа 2020

Вы можете использовать атрибут 'scaffoldBackgroundColor' в данных темы, установив нужный цвет. При этом, если вы используете виджет scaffold, ваше фоновое приложение будет иметь желаемый цвет. См .:

MaterialApp(
   title: 'App',
   theme: ThemeData(
     scaffoldBackgroundColor: Colors.blue,
   ),
   home: YourScreen()
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...