我正在学习Flutter,遇到了两种类型的设计MaterialApp和CupertinoApp。因此,我想知道是否要为android和ios创建一个应用程序,是否应该为MaterialApp为Android创建一个单独的应用程序,为CupertinoApp为iOS创建一个单独的应用程序?或者,如果说仅使用MaterialApp创建应用程序,那么该应用程序的ios版本会自动获得CupertinoApp吗?
答案 0 :(得分:3)
材料小部件为iOS,Android和Web实现了材料设计语言。
Cupertino小部件根据苹果的《人机界面指南》实现了当前的iOS设计语言。
为什么要编写Cupertino应用?
Material设计语言是为任何平台(不仅仅是Android)创建的。在Flutter中编写Material应用程序时,它在所有设备(甚至是iOS)上都具有Material外观。如果您希望您的应用看起来像标准的iOS风格的应用,则可以使用Cupertino库。
从技术上讲,您可以在Android或iOS上运行Cupertino应用,但是(由于许可问题)Cupertino在Android上的字体不正确。因此,在编写Cupertino应用程序时,请使用iOS专用设备。
您将实现一个库比蒂诺(Cupertino)风格的购物应用程序,其中包含三个选项卡:一个选项卡用于产品列表,一个选项卡用于产品搜索以及一个选项卡用于购物车。
如果您想详细了解Cupertino
和Material
。检查以下链接:
您还可以使用名为flutter_platform_widgets
的flutter程序包来检查您的应用在哪个平台上运行,并使用特定的小部件(“材质”或“库比蒂诺”)
此软件包链接为:flutter_platform_widgets
我希望这会有所帮助
答案 1 :(得分:0)
跨平台框架意味着它可以在多个操作系统中执行。这并不意味着它会相应地自动设计您的应用程序,这取决于开发人员。 您必须检查您的应用正在运行的平台,您可以使用简单的条件来做到这一点:
if(Platform.isIOS){
return CupertinoButton();
} else if(Platform.IsAndroid) {
return ElevatedButton();
}
或者您可以使用 flutter_platform_widgets 之类的包来帮助简化您的代码。