Flutter入门(47):Flutter 组件之 Cupert
2020-10-22 本文已影响0人
Maojunhao
1. 基本介绍
CupertinoButton 是 flutter 提供的一个 iOS 风格的 button,自带一个 Radius.circular(8.0) 的圆角,其实在 flutter 的应用中,不比太过纠结是哪一端风格的 button 使用起来都一样的。

Flutter入门(12):Flutter 组件之 RaisedButton 详解
Flutter入门(22):Flutter 组件之 FlatButton 详解
2. 示例代码
代码下载地址。如果对你有帮助的话记得给个关注,代码会根据我的 Flutter 专题不断更新。
3. 属性介绍
CupertinoButton 属性 | 介绍 |
---|---|
child | @required 子控件 |
padding | button 内间距 |
color | button 颜色 |
disabledColor | 不可交互时颜色,onPressed == null 时显示,默认为 CupertinoColors.quaternarySystemFill |
minSize | 最小可点击大小,默认为 kMinInteractiveDimensionCupertino |
pressedOpacity | 按压下去时 button 透明度,默认为 0.4 |
borderRadius | 圆角,默认为 const BorderRadius.all(Radius.circular(8.0)) |
onPressed | @required 点击事件 |
4. CupertinoButton 详解
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class FMCupertinoButtonVC extends StatefulWidget{
@override
FMCupertinoButtonState createState() => FMCupertinoButtonState();
}
class FMCupertinoButtonState extends State <FMCupertinoButtonVC> {
@override
Widget build(BuildContext context) {
// TODO: implement build
return CupertinoPageScaffold(
navigationBar: CupertinoNavigationBar(
middle: Text("CupertinoActivityIndicator"),
),
child: _safeArea(),
);
}
SafeArea _safeArea(){
return SafeArea(child: _column());
}
Column _column(){
return Column(
children: [
Padding(padding: EdgeInsets.all(20)),
Container(
alignment: Alignment.center,
child: _cupertinoButton(),
width: 210,
),
Padding(padding: EdgeInsets.all(20)),
Container(
alignment: Alignment.center,
child: _disabledButton(),
),
],
);
}
CupertinoButton _cupertinoButton(){
return CupertinoButton(
// 子控件
child: Row(
children: [
Icon(Icons.radio_button_checked),
Padding(padding: EdgeInsets.all(5)),
Text("CupertinoButton"),
],
),
color: Colors.red, // button 颜色
padding: EdgeInsets.all(20), // button 内边距
disabledColor: Colors.grey, // 不可交互时颜色,onPressed == null 时显示
// 点击事件
onPressed: (){
print("onPressed");
},
);
}
CupertinoButton _disabledButton(){
return CupertinoButton(
child: Text("DisabledButton"), // 子控件
color: Colors.red, // button 颜色
disabledColor: Colors.grey, // 不可交互时颜色,onPressed == null 时显示
padding: EdgeInsets.all(20),
onPressed: null,
borderRadius: BorderRadius.circular(15),
);
}
}

5. 技术小结
Flutter 中各个风格的 button 使用方法基本一致,只是会带一些默认属性而已。