第四十七回:MaterialApp Widget


我们在上一章回中介绍了Transform Widget相关的内容,本章回中将介绍 MaterialApp Widget.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里说的MaterialApp没有具体的物理形态,它主要用作App的入口。通过它可以快速搭建程序的框架,比如页面的路由,程序的主题等。如果有看官们做过Android开发肯定知道MaterialDesign,这是Google提出的一种设计风格,在此框架上搭建的App具有MaterialDesign风格。

使用方法

虽然我们看不到MaterialApp的物理形态,但是它仍然是一个Widget,它提供了相关的属性来控制App的设计风格,下面是一些常用的属性:

  • title属性:主要用来控制App的标题,也可以在Scaffold组件的AppBar属性中设置;
  • routes属性:主要用来控制App的路由,为App提供页面之间的导航功能;
  • home属性:主要用来控制App主窗口中显示的内容,通常使用Scaffold组件对象给它赋值;
  • theme属性:主要用来控制App的主题,比如文字大小和颜色等;

示例代码

class _ExMaterialAppState extends State<ExMaterialApp> {
  
  Widget build(BuildContext context) {
    return MaterialApp(
      //如果MaterialApp有嵌套,那么每个都需要设置,特别是最外层的MaterialApp
      //外层设置后这里也要设置,不然不起作用,仍然显示Debug字样
      debugShowCheckedModeBanner: false,

      routes: ,//省略不写
      home: Scaffold(
        appBar: AppBar(
          title: Text("Example of Material App"),
          ),
        body: ElevatedButton(
          child: Text("Button"),
          onPressed: (){},
        ),
      ),
      theme: ThemeData(
        //用来控制主要的颜色,比如AppBar,button和默认颜色
        primarySwatch: Colors.deepPurple,
        //用来控制body体内的主要颜色
        scaffoldBackgroundColor: Colors.blueGrey,
      ),
    );
  }
}

我们在上面的代码中使用了上一个小节中介绍的常用属性,在代码的关键地方都添加了注释,方便大家理解代码的含义。编译并且运行上面的程序,可以看到一个App的界面,与以前介绍过的App界面相比,界面的整体风格相同,不同的地方是界面的主颜色由默认的蓝色变成了紫色,界面背景色也从默认的白色变成了灰色。我在这里就不演示程序的运行效果图了,建议大家自己动手去实践,真正体会一下界面之间的差异。

此外,我要介绍了一下debugShowCheckedModeBanner属性,它用来控制是否在界面右上角显示Debug文字,默认值是true,修改为false后就不会在界面上显示Debug文字。在Flutter中,App中的每个界面右上角都会显示这样的文字,刚开始运行Flutter时有点不习惯,不过换一种思路想:它是在告诉我们当前程序是Debug版本。心里也有平衡了。其实Flutter的设计者也是这么想的,因为在正式的Release版本中不会显示Debug文字。如果大家实在看不习惯就修改该属性的值。

看官们,关于MaterialApp Widget的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值