使用容器作为父容器而不是 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.

它还负责为您的文本提供默认样式(这就是您看到黄色下划线的原因)。

不过,请记住,您是在为移动客户端开发应用程序,因此,您应该使用一些 MaterialAppCupertinoApp 开箱即用,即使您决定在应用程序中采用自己的路径,使用您自己的自定义 Widgets,等等