任何人都可以向我描述 Flutter 中 Material 和 MaterialApp 之间的区别,以及何时使用哪个?
Posted
技术标签:
【中文标题】任何人都可以向我描述 Flutter 中 Material 和 MaterialApp 之间的区别,以及何时使用哪个?【英文标题】:Can anyone describe to me what is the difference between Material and MaterialApp in the flutter, and which to use when? 【发布时间】:2021-01-16 18:20:58 【问题描述】:我是 Flutter 的新手,所以,我真的很难理解这两个术语之间的区别。在颤振文档中,这两个术语的描述是模糊的。那么请您对这两个术语提供一个清晰的概念吗?
【问题讨论】:
【参考方案1】:MaterialApp
使用材料设计的应用程序。
一个方便的小部件,它包装了许多常用的小部件 材料设计应用所必需的。它建立在 WidgetsApp 之上 通过添加特定于材料设计的功能,例如 AnimatedTheme 和 GridPaper。
MaterialApp 配置*** Navigator 来搜索 路线按以下顺序:
对于 / 路由,如果非 null,则使用 home 属性。
否则,如果路由表有路由条目,则使用路由表。
否则,将调用 onGenerateRoute(如果提供)。它应该为 home 和 未处理的任何有效路由返回一个非空值 路线。
最后如果一切都失败了 onUnknownRoute 被调用。
Read more
Material
一块材料。
Material 小部件负责:
Clipping: If clipBehavior is not Clip.none, Material clips its widget sub-tree to the shape specified by shape, type, and
边界半径。默认情况下,clipBehavior 为 Clip.none 以提高性能 考虑因素。 Elevation:材质在 Z 轴上将其部件子树提升高度像素,并绘制适当的阴影。 墨水效果:材质显示由 InkFeatures 实现的墨水效果,如 InkSplash 和 InkHighlight 在其子项下方。
物质隐喻
材料是材料设计的核心隐喻。每一块 材料存在于给定的高度,这会影响该部分的方式 材料在视觉上与其他材料相关,以及如何 材质投射阴影。
Read more
【讨论】:
【参考方案2】:Material 是一个小部件或包,用于定义符合 Material 规则的 UI 元素。 它定义了海拔、形状和东西。使用它你可以创建你的应用程序
材料提供不同类型的属性来自定义您的应用程序。例如
-
脚手架
文字
手势检测器
不同类型的按钮
对话框、警报和面板
TextField 等等
Refer official doc for more info
MaterialApp 一个方便的小部件,它封装了材料设计应用程序通常需要的许多小部件。 它通过添加特定于材质设计的功能(例如 AnimatedTheme 和 GridPaper)构建在 WidgetsApp 之上。
MaterialApp 提供不同类型的属性来自定义您的应用程序。例如
-
主题 - 自定义颜色和字体
Routes - 设置导航以重定向到不同的屏幕
深色主题 - 设置深色模式等等
Refer official doc for more info
【讨论】:
以上是关于任何人都可以向我描述 Flutter 中 Material 和 MaterialApp 之间的区别,以及何时使用哪个?的主要内容,如果未能解决你的问题,请参考以下文章
C# 新手,任何人都可以向我解释枚举和设置变量的工作原理吗? [关闭]
任何人都可以向我解释CMVideoFormatDescriptionGetCleanAperture()吗?
当我运行迁移时,uuid 字段总是在更新,它会给我一些性能问题,任何人都可以向我解释原因和解决方案