在Flutter中设计风格主要为Material Design风格,Flutter也支持IOS设置风格Cupertino的一系列Widget,分别对应flutter的包下的material目录下的dart文件和cupertino目录的dart文件。

Root Widget ;

   在material design设计风格下的root widget为MaterialApp,ios 风格的root widget为CupertinoApp;

Material Design:

void main()=>runApp(MyMaterialApp());class MyMaterialApp extends StatelessWidget{@overrideWidget build(BuildContext context)  => MaterialApp(home: HomeScreen(),);
}
复制代码

Cupertino:

void main()=>runApp(MyAppCupertino());class MyAppCupertino extends StatelessWidget{@overrideWidget build(BuildContext context)  => CupertinoApp(home: HomeScreen(),);
}
复制代码

Scaffold;

   为material design小部件创建视觉支架的为Scaffold,为cupertino小部件创建视觉支架的为CupertinoTabScaffold和CupertinoPageScaffold,其中CupertinoTabScaffold可以使用底部的选项卡栏为应用程序创建布局,其中CupertinoPageScaffold 为iOS模式页面的典型内容,实现布局、顶部有导航栏。

如下为CupertinoPageScaffold和CupertinoTabScaffold混合使用实现ios风格UI的部分代码:

class HomeScreen extends StatelessWidget{@overrideWidget build(BuildContext context) {return CupertinoTabScaffold(tabBar: CupertinoTabBar(items: [BottomNavigationBarItem(icon: Icon(CupertinoIcons.book_solid),title: Text('书籍')),BottomNavigationBarItem(icon: Icon(CupertinoIcons.eye_solid),title: Text('观看'))]),tabBuilder: (context,position){return CupertinoTabView(builder: (context){return CupertinoPageScaffold(navigationBar: CupertinoNavigationBar(middle: (position==0)?Text("书籍"):Text("观看"),),child: Center(child: CupertinoButton(child:Text("this is tab :$position",), onPressed: (){Navigator.of(context).push(CupertinoPageRoute(builder: (context){return DetailScreen((position==0)?"书籍":"观看");}));})),);},);});}
}///详细页面;
class DetailScreen extends StatelessWidget{final String title;DetailScreen(this.title);@overrideWidget build(BuildContext context) {return CupertinoPageScaffold(navigationBar: CupertinoNavigationBar(middle: Text("Details"),),child: Center(child: Text("欢迎来到 :$title"),));}
}
复制代码

可以使用iOS风格的图标CupertinoIcons;

  CupertinoPageRoute为Cupertino创建一个页面路由,以便在iOS设计的应用程序中使用。MaterialPageRoute定义了以material design的方式转换的应用页面。

1、Flutter Widget(IOS Style) - CupertinoApp;相关推荐

  1. 2、Flutter Widget(IOS Style) - CupertinoActionSheet;

      iOS风格的模式底部Dialog列表.向用户显示与当前上下文相关的一组两个或更多选项的选择提示; class CupertinoActionSheetApp extends StatelessWi ...

  2. 16、Flutter Widget - PageView;

      要实现在安卓上的ViewPager可以使用PageView控件. 创建PageController final controller=PageController(initialPage:1,); ...

  3. Flutter 发布iOS版本app

    1. 苹果账号和相关证书配置(直接搜索 iOS 证书配置,不多做描述),我这边使用自动生成证书 2. flutter build ios --release // 以创建release版本(flutt ...

  4. 【Flutter从入门到实战】⑪、豆瓣案例-1、星星评分Widget、虚线Widget、TabbarWidget、BottomNavigationBarItem的封装、初始化配置抽取

    Flutter从入门到实战 一共分为23个系列 ①(Flutter.Dart环境搭建篇) 共3个内容 已更新 ②(Dart语法1 篇) 共4个内容 已更新 ③(Dart语法2 篇) 共2个内容 已更新 ...

  5. 62、Flutter插件通信iOS,Android实现过程<二>

    前言 61.Flutter插件通信原理<一>_风雨「83」的博客-CSDN博客Flutter与原生通讯 - Flutter Plugin - 知乎前言Flutter优势主要体现在UI上-- ...

  6. flutter制作博客展示平台,现已支持 Web、macOS 应用、Android 和 iOS

    Flutter Blog Theme using Flutter | Web, macOS, Android, iOS Flutter 最近发布了 Flutter V2.5.1,其性能得到了很大提升, ...

  7. Flutter与JS的双向调用、Flutter中Widget与Html混合加载

    题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精. Flutter是谷歌推出的最新的移动开发框架. [x1]微信公众号的每日提醒 随时随记 每日积累 随心而过 [x2]各种系列的视频教程 ...

  8. flutter在IOS上的登录实现——QQ登录、微信登录、自动识别手机号一键登录、apple登录

    flutter在IOS上的登录实现--QQ登录.微信登录.自动识别手机号一键登录.apple登录 一.QQ登录 使用的第三方库: 具体操作方法: 1.配置 Universal Links 2.QQ互联 ...

  9. iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码

    iOS精选源码 全网最详细购物车强势来袭 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗) swift, UITableView的动态拖动重排CCPCellDragger 高仿书旗小说 Flut ...

最新文章

  1. NDK/JNI demo ( 五 ) ORB_SLAM2在Android上的移植过程
  2. 问答:双总线并机,可以使用不同品牌的ups吗?
  3. 前端--关于CSS盒模型
  4. memmove和memcpy
  5. iOS 常用公共方法
  6. .Net程序猿玩转Android开发---(11)页面跳转
  7. iOS 8 Xcode6 设置Launch Image 启动图片转
  8. C++使函数返回多个数组
  9. PPT中均匀分布各图形(水平或垂直)
  10. MySQL优化详解(二)——数据库架构和使用优化
  11. Orcad 使用MySQL数据库建立元件数据库完整步骤(30多张截图)
  12. Ubuntu 配置固定IP方法
  13. 徐静蕾2008十大青春语录
  14. iOS 用内置浏览器Safari 打开网页
  15. 这家安全厂商避谈“软件定义”,我却要为它的“反骨”点赞
  16. linux 关闭防火墙
  17. 稠密的无人机激光雷达点云数据处理与分析方法与工具科普系列(一)
  18. C# Settings.settings的用处
  19. 2PC、3PC、TCC
  20. CSS 与 地图可视化 三棱锥 (九)

热门文章

  1. 洛谷 P3367 ---- 【模板】并查集
  2. 23根火柴游戏 c语言,23 根火柴游戏
  3. mysql不兼容_mysql5.7 不兼容问题
  4. java货物进销管理系统_java实验 货物进销管理系统
  5. java post 图片上传_java 发送 post 请求上传图片
  6. C语言的typedef用法
  7. ElasticSearch和solr的对比
  8. 机器学习笔记(九)——决策树的生成与剪枝
  9. 产品经理如何催项目进度?
  10. 产品经理怎么做可行性分析?