Cupertino风格组件即IOS风格组件。主要有CupertinoTabBar、CupertinoPageScaffold、CupertinoTabScaffold、CupertinoTabView等。目前组件库还没有Material Design风格组件丰富。
IOS风格loading指示器。
常用属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
radius | double | 10.0 | 加载图形的半径 |
animating | bool | true | 是否播放加载动画 |
与Material Design风格的AlertDialog类似。
常见属性
属性名 | 类型 | 说明 |
---|---|---|
actions | List |
对话框底部操作按钮。如确定、取消。 |
title | Widget | 对话框标题,通常是一个文本 |
content | Widget | 对话框内容部分,通常为提示内容 |
IOS风格按钮。
常用属性
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
color | Color | - | 按钮颜色 |
disableColor | Color | ThemeData.disabledColor | 按钮禁用状态颜色 |
onPressed | VoidCallback | - | 按钮按下时回调函数 |
child | Widget | - | 按钮的child通常为Text文本,显示按钮名字 |
enable | bool | true | 是否为禁用状态 |
选项卡组件,将选项卡按钮与选项卡视图绑定。
常用属性
属性名 | 类型 | 说明 |
---|---|---|
tabBar | CupertinoTabBar | 选项卡按钮,通常由图标和文本组成 |
tabBuilder | IndexedWidgetBuilder | 选项卡视图构造器 |
选项卡按钮,通常由BottomNavigationBarItem组成包含图标加文本。
常用属性
属性名 | 类型 | 说明 |
---|---|---|
items | List |
选项卡按钮集合 |
backgroundColor | Color | 选项卡按钮背景色 |
activeColor | Color | 选中按钮前景色 |
iconSize | double | 选项卡图标大小 |
选项卡视图。
常用属性
属性名 | 类型 | 说明 |
---|---|---|
builder | WidgetBuilder | 选项卡视图构造器 |
routes | Map |
选项卡视图路由 |
页面的基本布局结构。包含内容和导航栏。
常用属性
属性名 | 类型 | 说明 |
---|---|---|
backgroudColor | Color | 页面背景色 |
navigationBar | ObstructingPreferredSizeWidget | 顶部导航栏按钮。包含左中右三个子组件 |
child | Widget | 页面的主要内容 |
导航栏结构组件。
常用属性
属性名 | 类型 | 说明 |
---|---|---|
middle | Widget | 导航栏中间组件,通常为页面标题 |
trailing | Widget | 导航栏右边组件,通常为菜单按钮 |
leading | Widget | 导航栏左边组件,通常为返回按钮 |
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: CupertinoButton(
child: Text('CupertinoButton'),
color: Color(0xff0000ff),
onPressed: () {},
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: CupertinoAlertDialog(
title: Text('标题'),
content: Text('aaaa'),
actions: [
CupertinoDialogAction(
child: Text('确定'),
),
CupertinoDialogAction(
child: Text('取消'),
),
],
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CircularProgressIndicator(
// strokeWidth: ,
),
SizedBox(
height: 50.0,
),
CupertinoActivityIndicator(
radius: 15.0,
),
],
),
),
);
}
}
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MaterialApp',
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State {
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
title: Text('主页'),
),
BottomNavigationBarItem(
icon: Icon(Icons.message),
title: Text('消息'),
),
],
),
tabBuilder: (context, index) {
return CupertinoTabView(
builder: (context) {
switch (index) {
case 0:
return MyHome();
break;
case 1:
return MyMessage();
break;
}
},
);
},
);
}
}
class MyHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('主页'),
leading: Icon(CupertinoIcons.back),
trailing: Icon(CupertinoIcons.search),
),
child: Center(
child: Text('主页'),
),
);
}
}
class MyMessage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text('消息'),
leading: Icon(CupertinoIcons.back),
trailing: Icon(CupertinoIcons.search),
),
child: Center(
child: Text('消息'),
),
);
}
}