【问题标题】:Proper way to create a Widget?创建小部件的正确方法?
【发布时间】:2021-06-15 15:53:42
【问题描述】:

初学者问题... Flutter 材料说要扩展无状态或有状态的小部件类...但是在教程中有几个小部件未定义为类的示例。

Widget buttonSection = Container(
  child: Row(
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
    children: [
      ...
    ],
  ),
);

https://flutter.dev/docs/development/ui/layout/tutorial#step-0-create-the-app-base-code

class ButtonSection extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return (...)
}

简单的小部件应该只是类中的变量吗?或他们自己的扩展有状态或无状态父类的类。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您在顶部代码创建instance of a class,在底部创建class。 就像您在顶部有一个项目,在底部代码中有一个蓝图。

    【讨论】:

      【解决方案2】:

      这是非常主观的决定你如何分割你的小部件。以下是我划分和创建小部件的方法。

      1. 总会有一个屏幕,由多个交互式(按钮)和非交互式(文本、图像)元素组成。
      2. 通常,如果您从事产品/项目,您将拥有一个 UI。因此可以创建可在整个应用程序中使用的通用小部件。
      3. 现在出现的小部件是特定于屏幕的小部件,不会在其他屏幕上使用。
      4. 假设您有一个带有轮播的屏幕,您可以为它创建一个单独的类,并在该类中创建与它相关的所有功能。
      5. 对于屏幕上的小部分(例如列表视图中的项目),您可以创建一个类函数,例如 _renderUserItem(String name, String mail, String avatar, bool isActive),并根据您的 UI 要求返回 ContainerListViewTile()
      6. 在您的 build() 函数中调用此函数。

      结论-

      • 将较大的元素保留在单独的类中以处理任何功能。
      • 任何小的(50 行代码)和足够静态的 UI 部分都可以放在同一个类中。

      PS -本质上是主观的。但始终建议让您的小部件尽可能哑。

      【讨论】:

        猜你喜欢
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 2021-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多