【发布时间】:2018-12-06 06:04:18
【问题描述】:
我正在使用 Flutter 开发应用程序。如果我选择MaterialApp 作为我的应用程序的父小部件,我的应用程序中的所有Text 小部件都带有黄色下划线。另一方面,如果我只使用Material 作为父小部件,Text 小部件下方不会显示黄线。
Material 和 MaterialApp 有什么区别?
【问题讨论】:
我正在使用 Flutter 开发应用程序。如果我选择MaterialApp 作为我的应用程序的父小部件,我的应用程序中的所有Text 小部件都带有黄色下划线。另一方面,如果我只使用Material 作为父小部件,Text 小部件下方不会显示黄线。
Material 和 MaterialApp 有什么区别?
【问题讨论】:
MaterialApp 是一个小部件,它引入了许多有趣的工具,例如 Navigator 或 Theme,以帮助您开发应用程序。
另一方面,Material 是一个小部件,用于定义符合 Material 规则的 UI 元素。它定义了海拔、形状和东西。然后被许多材料小部件重用,例如Appbar 或Card 或FloatingButton。
Text 中的黄色下划线是MaterialApp 作为备用Theme 引入的。此处用于调试目的,警告您需要在Text 上方的某个位置使用Material。
简而言之,两者都用。您应该在应用的根目录附近有一个MaterialApp。然后在您想使用Text 或InkWell 时使用引入Material 实例的小部件(例如Scaffold、Appbar、Dialog、...)。
【讨论】:
Scaffold 尤其重要。你的应用的所有屏幕都应该被包裹在一个脚手架中。
MaterialApp :MaterialApp 配置顶级 Navigator 来搜索路由或定义 Home。
Material:用于子 UI 小部件的渲染和效果。
【讨论】: