Flutter中的Scaffold和MaterialApp有什么区别?

时间:2019-03-29 06:30:42

标签: dart flutter

我有两个屏幕,其中
 首先:Firebase中的数据列表
 第二个:在该屏幕中添加数据,所以我想回到第一个屏幕,  当我返回时,一切正常,只有黑屏。 现在问题已经不复存在,我已经搜索了它的工作原理,但是仍然不清楚我对此的理解,有人可以描述它的工作原理吗?

之前

return new MaterialApp(
      title: "AddEditNames ",
      home: new AddEditNameScreen(),
);

之后:当我将其替换为

 return new Scaffold(
      backgroundColor: Color.fromRGBO(30, 30, 30, 1.0),
      body: new AddEditNameScreen(),
      appBar: new AppBar(
        elevation: 0.0,
        backgroundColor: Colors.blueAccent,
        actions: <Widget>[
        ],
        title: new Text(
          "AddEditNames",
          style: new TextStyle(color: Colors.white),
        ),
        centerTitle: true,
      ),
 );

3 个答案:

答案 0 :(得分:5)

MaterialApp是应用程序的起点,它告诉Flutter您将在应用程序中使用Material组件并遵循Material设计。

ScaffoldMaterialApp下使用,它为您提供许多基本功能,例如AppBarBottomNavigationBarDrawerFloatingActionButton等。

因此,这就是典型应用程序的开始方式。

void main() {
  runApp(MaterialApp(
    home: Scaffold(
      appBar: AppBar(),
      body: YourWidget(),
    ),
  ));
}

答案 1 :(得分:3)

MaterialApp是一个窗口小部件,其中介绍了一些构建材料设计应用程序所需的窗口小部件(NavigatorTheme)。

通过Scaffold,您可以实现大多数应用程序具有的实质性标准应用程序小部件。例如AppBarBottomAppBarFloatingActionButtonBottomSheetDrawerSnackbar

Scaffold被设计为MaterialApp的单个顶级容器,尽管不必嵌套Scaffold

还可以检出MaterialAppScaffold的Flutter官方文档。

答案 2 :(得分:1)

Material应用程序是核心组件和预定义的类。我们可以使用Material应用程序来创建小部件,以在Flutter中设计应用程序。 Material应用程序具有多个属性。其中一些是标题,家庭,主题,颜色,路线等。

脚手架也是另一个可用于设计应用程序的类。它为我们提供了诸如小吃店,底页,应用程序栏,浮动操作栏等API。Scaffold为我们提供了一个框架来实现应用程序的可视布局结构。