【问题标题】:Will Cupertino widgets works on androidCupertino 小部件是否可以在 android 上运行
【发布时间】:2019-06-02 16:21:33
【问题描述】:
我有一个需要使用标签导航的问题。当前的材料脚手架只有 1 个堆栈。因此,如果我需要深入几个级别(子页面),那么我会丢失选项卡上下文。 Cupertino 脚手架让我可以深入几个层次,但仍保留根选项卡。
如果我改用 Cupertino 脚手架,是否需要编写两套代码? Cupertino for iOS 和 Material for Android 还是转换成 Flutter 原生代码?
【问题讨论】:
标签:
flutter
flutter-layout
cupertino-widgets
【解决方案1】:
没有。你不需要写两次。
Cupertino 小部件在 android 上运行良好。
【解决方案2】:
Google Codelab上有一个警告
从技术上讲,您可以在 Android 或 iOS 上运行 Cupertino 应用,但是
(由于许可问题)Cupertino 在 Android 上不会有正确的字体。因此,在编写
Cupertino 应用程序。
【解决方案3】:
Cupertino 小部件和 Material 小部件都是使用相同的底层框架构建的。 Flutter 更像是一个游戏框架,它使用 Skia 引擎构建所有 UI。这意味着 Flutter 中构建的每个小部件在支持 Flutter 的每个平台(最终也包括桌面、Web 和嵌入式系统)上都将工作/看起来相同。这就是 Flutter 与像 React Native 这样使用桥接创建实际原生组件的东西相比如此独特的原因。
【解决方案4】:
嗯,功能方面它会起作用。如您所见here,代码是使用CupertinoScaffold 作为根小部件编写的,在Android 上运行的应用程序的主题就像一个iOS 应用程序。 Scaffold 所做的只是管理屏幕上事物的组织方式和一些内部功能,因此无论您使用 iOS 主题还是 Android 主题,这完全取决于您。
现在从 UI 的角度来看,如果您将类似 iOS 的应用呈现给 Android 应用,那么您的 Android 用户可能会感到慌乱,因为该外观和感觉不是平台原生的。