使用容器作为父容器而不是 MaterialApp/Scaffold 时的注意事项
Things to be aware of when using a container as a parent instead of MaterialApp/Scaffold
假设我正在构建一个不需要 Material 设计元素并使用容器作为父元素的应用程序。
使用 MaterialApp/Scaffold 时是否需要手动设置(布局方面)不需要的东西?
以下是我在使用容器作为父容器时注意到的一些意外行为:
• 文本小部件中的黄线(这些线在使用脚手架时消失)
• 即使我设置了约束
,ClipRRect 小部件也会占据整个屏幕
Material class 是 UI 的主要组成部分。使用 Material 小部件作为父级并不意味着您被迫为整个应用程序使用 Material 设计,你可以做你自己的自定义小部件,UI,等等
作为官方文档的一部分:
The Material widget is responsible for:
Clipping: If clipBehavior is not Clip.none, Material clips its widget sub-tree to the shape specified by shape, type, and borderRadius. By default, clipBehavior is Clip.none for performance considerations.
Elevation: Material elevates its widget sub-tree on the Z axis by elevation pixels, and draws the appropriate shadow.
Ink effects: Material shows ink effects implemented by InkFeatures like InkSplash and InkHighlight below its children.
它还负责为您的文本提供默认样式(这就是您看到黄色下划线的原因)。
不过,请记住,您是在为移动客户端开发应用程序,因此,您应该使用一些 MaterialApp 和 CupertinoApp 开箱即用,即使您决定在应用程序中采用自己的路径,使用您自己的自定义 Widgets,等等
假设我正在构建一个不需要 Material 设计元素并使用容器作为父元素的应用程序。
使用 MaterialApp/Scaffold 时是否需要手动设置(布局方面)不需要的东西?
以下是我在使用容器作为父容器时注意到的一些意外行为: • 文本小部件中的黄线(这些线在使用脚手架时消失) • 即使我设置了约束
,ClipRRect 小部件也会占据整个屏幕Material class 是 UI 的主要组成部分。使用 Material 小部件作为父级并不意味着您被迫为整个应用程序使用 Material 设计,你可以做你自己的自定义小部件,UI,等等
作为官方文档的一部分:
The Material widget is responsible for:
Clipping: If clipBehavior is not Clip.none, Material clips its widget sub-tree to the shape specified by shape, type, and borderRadius. By default, clipBehavior is Clip.none for performance considerations.
Elevation: Material elevates its widget sub-tree on the Z axis by elevation pixels, and draws the appropriate shadow.
Ink effects: Material shows ink effects implemented by InkFeatures like InkSplash and InkHighlight below its children.
它还负责为您的文本提供默认样式(这就是您看到黄色下划线的原因)。
不过,请记住,您是在为移动客户端开发应用程序,因此,您应该使用一些 MaterialApp 和 CupertinoApp 开箱即用,即使您决定在应用程序中采用自己的路径,使用您自己的自定义 Widgets,等等