【问题标题】:Flutter: What Material Widgets are working on iOS?Flutter:哪些 Material Widget 在 iOS 上运行?
【发布时间】:2020-07-03 00:56:23
【问题描述】:

有谁知道:我可以完全使用 Flutter 的 Material Widgets 构建一个 iOS 应用,还是有任何功能问题? 是否有关于哪些 Material Widgets 在 iOS 上运行的文档?

(我不是在这里谈论设计/用户体验的含义......)

谢谢!

【问题讨论】:

    标签: flutter flutter-widget flutter-ios


    【解决方案1】:

    所有 Material 小部件或 Cupertino 小部件都可以在两个平台(iOS 和 Android,如果您想尝试 Flutter 测试版,还可以在网络上)工作,并且它们都根据平台改变其 UX 行为(就像物理的方式一样)拉动时的滚动视图或顶部导航栏的外观)。

    Flutter 作为画布工作,可以绘制所有内容,因此 UI 不依赖于目标平台。

    但是,如果您开始将 Material 与 Cupertino 混合使用,您将遇到问题,因为有些小部件(例如 Scaffold)只需要 Material 小部件。

    您可以看到我所说的确实是查看小部件的源代码。在 Scaffold(一个 Material 小部件)中,基于平台的行为发生了变化:https://github.com/flutter/flutter/blob/1ba4f1f509202f3d2ec16f053edcbe2df6b7107e/packages/flutter/lib/src/material/scaffold.dart#L2481

    Here 你可以在前 15 秒看到 Flutter 团队成员说 Material 在 iOS 和 Android 上都可以工作,同样适用于 Cupertino。使用 Cupertino 或 Material 构建多平台应用程序没有任何限制。这些都是 Flutter 的一些优点,屏幕上的一切都是由 Flutter 逐像素绘制的。

    【讨论】:

    • material.io/components/time-pickers/flutter#types 某些材质小部件(例如时间选择器)在材质文档中被标记为不适用于 ios。然而,我似乎可以毫无问题地在 ios 上运行它。不知道该怎么做。
    • @BenjaminLee Material 是一个与 Flutter 没有直接关系的项目,它有自己的库,可用于 iOS、Android 和 Web(必须使用原生语言:swift、Java/Kotlin) ,斯威夫特/ObjC)。除了这些平台,还有 Material Flutter 库(不能与原生代码一起使用)。所以在这种情况下,Material Flutter 库支持这个组件,但 Swift/Obj-C 版本 (github.com/material-components/material-components-ios) 不支持。所以有了 Flutter,你可以在 iOS、Web、macOS、Linux 和 Windows 平台上使用任何 Material 小部件。
    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    相关资源
    最近更新 更多