初级问题。。。Flutter材料说要扩展无状态或有状态的小部件类。。。但在教程中,有几个示例中小部件没有定义为类。
Widget buttonSection = Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
...
],
),
);
https://flutter.dev/docs/development/ui/layout/tutorial#step-0-创建基于应用程序的代码
与
class ButtonSection extends StatelessWidget {
@override
Widget build(BuildContext context) {
return (...)
}
简单的小部件应该只是类中的变量吗?或者它们自己的扩展有状态或无状态父类的类。
您在顶部代码上创建instance of a class
,在底部代码上创建class
。这就像你在顶部有一个项目,在底部有一个蓝图代码。
这是非常主观的,用来决定如何拆分小部件。以下是我如何划分和创建小部件。
- 总会有一个屏幕,它由多个交互式(按钮(和非交互式(文本、图像(元素组成
- 通常,如果你在处理一个产品/项目,你会有一个UI。因此,可以创建可在整个应用程序中使用的通用小部件
- 现在是窗口小部件,它们是特定于屏幕的窗口小部件不会在其他屏幕上使用
- 比方说,你有一个带有旋转木马的屏幕,你可以为它创建一个单独的类,以及该类中与它相关的所有功能
- 对于屏幕上的小部分(如列表视图中的项目(,您可以创建一个类函数
_renderUserItem(String name, String mail, String avatar, bool isActive)
,并根据您的UI需求返回一个Container
或ListViewTile()
- 在
build()
函数中调用此函数
结论-
- 将较大的元素保留在一个单独的类中以处理任何功能
- 任何小(50行代码(且足够静态的UI部分都可以保存在同一个类中
PS-它本质上是主观的。但是,让你的小部件尽可能地呆着是明智的。