为什么我的 Flutter ThemeData 没有应用到我的应用程序?

问题描述 投票:0回答:1

我刚刚开始学习 Flutter,正在关注 Youtube 教程。据我所知,我已经准确复制了代码,但是,我的 ThemeData 并未应用于我的应用程序。我还注意到 Youtuber 的应用栏默认为蓝色,并且文本也默认居中。我的默认应用程序栏是白色的并且左对齐。

我尝试添加primarySwatch以使应用程序栏变成黄色。但是,它没有对应用程序进行任何更改或导致任何错误。我错过了什么愚蠢的东西吗?

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
      theme: ThemeData(primarySwatch: Colors.yellow,),
    );
  }
}


class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.yellow[200],
      appBar: AppBar(
        title: Text("TO DO"),
        elevation: 0,
      ),
    );
  }
}

应用程序截图

flutter flutter-appbar themedata
1个回答
0
投票

我还注意到 Youtuber 的应用栏默认为蓝色,并且文本也默认居中。

您正在使用的教程可能是使用材料3设计。

Material3 现在默认应用于较新的 Flutter 项目。


您可以在 ThemeData 中禁用 Material3:

return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: HomePage(),
      theme: ThemeData(useMaterial3: false // --> Set to to false
          ),
    );

这会导致蓝色应用栏(根据需要):

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.