没有 material 设计或 cupertino 定制的 Flutter?

Flutter without material design or cupertino customizations?

我对 flutter 还很陌生,我正在尝试创建一个不遵循 material 设计指南(公司想要自己的设计)的应用程序。

我似乎只能使用 material 设计或 cupertino 来创建东西。我不确定如何使用自定义脚手架或在小部件构建函数中使用 return new MaterialApp(...,或者 AppBar 如果它可以是平坦的而不是有阴影的话。

我希望这是有道理的。我只是想找到解决办法。

Flutter 有一些流行语,例如 "Everything is a widget!"。所以你和你在 MaterialApp、CupertinoApp 等上面写的所有东西都是小部件。另一个流行语是 "You don't have to say no to your designer anymore",这些主要是在告诉你有空。

作为入口点,您有一个调用名为 运行App

的方法的主要方法

void main() => runApp(SomeWidget());

所以,如果你打开运行App的文档,你可以看到语句

Inflate the given widget and attach it to the screen.The widget is given constraints during layout that force it to fill the entire screen. ....

并且方法声明表明它需要一个小部件,如此处所示 void runApp(Widget app)

实际上这些显示,即使您的应用程序是一个 小部件,您甚至可以 运行 应用程序中的应用程序。

总之,长话短说,那些 类 以及您在那里看到的所有东西都是开箱即用的辅助工具,您可以使用它们(而且大多很容易修改)来获得看起来原生且不错的东西也许你的设计师告诉你使用。

但是使用 Flutter,您不仅限于那些 类,您可以按照您想要的方式(或您的设计师想要的方式)实现所有内容并简单地使用它,因为归根结底, 一切都是一个小部件:)

不使用Cupertino/Material设计是没有问题的。 事实上,flutter 是在考虑定制品牌设计的情况下制作的。它恰好运送了一个 Material 设计作为奖励。

Flutter 提供了大量与设计无关的小部件,您可以使用它们来制作自定义外观。几个例子是:

  • WidgetApp
  • 手势检测器
  • 装饰盒

您还可以使用下层 CustomPaintRenderBox

进行一些非常高级的渲染

您可以在此处获得可用内容的列表:https://docs.flutter.dev/flutter/widgets/widgets-library.html