美文网首页其他技术
FlutterUI布局-关于Widget(1)

FlutterUI布局-关于Widget(1)

作者: 冲云简 | 来源:发表于2018-11-01 17:31 被阅读0次

    Flutter重点

    内容来源:https://flutterchina.club/tutorials/layout/
    Flutter的组件介绍:https://flutterchina.club/tutorials/layout/#approach

    • Widgets 是用于构建UI的类.
    • Widgets 用于布局和UI元素.
    • 通过简单的widget来构建复杂的widget

    Flutter布局机制的核心就是widget。在Flutter中,几乎所有东西都是一个widget - 甚至布局模型都是widget。您在Flutter应用中看到的图像、图标和文本都是widget。 甚至你看不到的东西也是widget,例如行(row)、列(column)以及用来排列、约束和对齐这些可见widget的网格(grid)。

    在Flutter中,事件流是“向上”传递的,而状态流是“向下”传递的。

    Widget

    在设计用户界面时,您可以使用标准widget库中的widget,也可以使用Material Components中的widget。 您可以混合使用两个库中的widget,可以自定义现有的widget,也可以构建一组自定义的widget。

    widgets library中的标准widget和Material Components library中的专用widget 。 任何应用程序都可以使用widgets library中的widget,但只有Material应用程序可以使用Material Components库。

    对齐 widgets

    您可以控制行或列如何使用mainAxisAlignment和crossAxisAlignment属性来对齐其子项。 对于行(Row)来说,主轴是水平方向,横轴垂直方向。对于列(Column)来说,主轴垂直方向,横轴水平方向。

    StatefulWidgetStatefulWidget

    有状态的Widget使用StatefulWidget(与用户有交互的), 无状态的Widget使用StatelessWidget。

    使用图片

    将图片添加到项目时,需要更新pubspec文件才能访问它们 - 此示例使用Image.asset显示图像。 有关更多信息,请参阅此示例的pubspec.yaml文件, 或在Flutter中添加资源和图像。如果您使用的是网上的图片,则不需要执行此操作,使用Image.network即可。

    基础 Widget

    Text:该 widget 可让创建一个带格式的文本。

    RowColumn: 这些具有弹性空间的布局类Widget可让您在水平(Row)和垂直(Column)方向上创建灵活的布局。其设计是基于web开发中的Flexbox布局模型。

    Stack: 取代线性布局 (译者语:和Android中的LinearLayout相似),Stack允许子 widget 堆叠, 你可以使用 Positioned 来定位他们相对于Stack的上下左右四条边的位置。Stacks是基于Web开发中的绝度定位(absolute positioning )布局模型设计的。

    ContainerContainer 可让您创建矩形视觉元素。container 可以装饰为一个BoxDecoration, 如 background、一个边框、或者一个阴影。 Container 也可以具有边距(margins)、填充(padding)和应用于其大小的约束(constraints)。另外, Container可以使用矩阵在三维空间中对其进行变换。

    Key

    您可以使用key来控制框架将在widget重建时与哪些其他widget匹配。默认情况下,框架根据它们的runtimeType和它们的显示顺序来匹配。 使用key时,框架要求两个widget具有相同的keyruntimeType。相当于ios中cell的identity。

    相关文章

      网友评论

        本文标题:FlutterUI布局-关于Widget(1)

        本文链接:https://www.haomeiwen.com/subject/qcgxxqtx.html