解决Flutter顶部栏颜色修改 theme: ThemeData(primaryColor: Colors.white)不起作用的问题

解决Flutter顶部栏颜色修改 theme: ThemeData(primaryColor: Colors.white)不起作用的问题

return MaterialApp(
debugShowCheckedModeBanner: false, // home: Tabs(),
initialRoute: '/', onGenerateRoute:onGenerateRoute, 
theme: ThemeData(
primaryColor: Colors.white
), 
)

发现顶部栏颜色没有变化

改成以下代码:

return MaterialApp(
        home: Tabs(),
        debugShowCheckedModeBanner: false,
        initialRoute: '/',
        onGenerateRoute: onGenerateRoute,
        theme: ThemeData(
            colorScheme: const ColorScheme(
                primary: Colors.white, //顶部栏栏颜色
                primaryVariant: Colors.white,
                secondary: Colors.green,
                background: Colors.white,
                error: Colors.red,
                brightness: Brightness.light,
                onBackground: Colors.pink,
                secondaryVariant: Colors.white,
                onError: Colors.yellow,
                onPrimary: Colors.white, //顶部栏字体颜色
                onSecondary: Colors.redAccent,
                onSurface: Colors.redAccent,
                surface: Colors.redAccent
                // all fields should have a value
                )),
      );

ColorScheme中必须的参数较多,每一个都需要填写

如果不想要写所有参数,可以采用以下方式

theme: ThemeData(
        colorScheme: const ColorScheme.light(
            primary: Colors.white,
            onPrimary: Colors.white,
            onBackground: Colors.white,
            secondary: Colors.amber),
      ),
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
这是我的全部flutter代码,你看下为什么字体没有根据textStyle而改变大小:import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(240, 320), minTextAdapt: true, splitScreenMode: true, builder: (context, child) { return myApp(); }, ); } } class myApp extends StatelessWidget { const myApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'ListView widget', theme: ThemeData( textTheme: TextTheme( bodyLarge: TextStyle(fontSize: 50), )), home: Scaffold( body: Container( color: Colors.white, child: SafeArea( child: Column( children: [ Image.asset( 'lib/images/title.png', width: ScreenUtil().setWidth(240), fit: BoxFit.contain, ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Image.asset( 'lib/images/aside.png', width: 30, height: ScreenUtil().setWidth(288), fit: BoxFit.cover, alignment: Alignment.topLeft, ), Expanded(flex: 1, child: middleContainer()), Image.asset( 'lib/images/aside.png', width: 30, height: ScreenUtil().setWidth(288), fit: BoxFit.cover, alignment: Alignment.topRight, ), ], ) ], ), ))), ); } } class middleContainer extends StatelessWidget { const middleContainer({super.key}); @override Widget build(BuildContext context) { return Container( height: ScreenUtil().setWidth(288), color: const Color(0xff010042), child: Column(children: [ Expanded( flex: 274, child: Container( color: Colors.amber, )), Expanded( flex: 45, child: Container( color: Color.fromARGB(255, 209, 188, 123), )), Expanded( flex: 60, child: Container( child: Stack( children: [ Positioned( child: Text( '返回', ), bottom: ScreenUtil().setWidth(5), left: ScreenUtil().setWidth(10), ) ], ), color: Color.fromARGB(255, 85, 105, 104), )), ]), ); } }
05-25

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值