Flutter 之 CupertinoButton (iOS 风

2022-05-12  本文已影响0人  maskerII

CupertinoButton 是 flutter 提供的一个 iOS 风格的 button,自带一个 Radius.circular(8.0) 的圆角

1. CupertinoButton

CupertinoButton 定义

  const CupertinoButton({
    Key? key,
    required this.child,
    this.padding,
    this.color,
    this.disabledColor = CupertinoColors.quaternarySystemFill,
    this.minSize = kMinInteractiveDimensionCupertino,
    this.pressedOpacity = 0.4,
    this.borderRadius = const BorderRadius.all(Radius.circular(8.0)),
    this.alignment = Alignment.center,
    required this.onPressed,
  })

CupertinoButton 属性

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 点击事件
alignment 子部件 对齐方式

2. 示例


class MSCupertinoButtonDemo1 extends StatelessWidget {
  const MSCupertinoButtonDemo1({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return CupertinoPageScaffold(
      navigationBar: CupertinoNavigationBar(middle: Text("iOS 风格")),
      child: Padding(
        padding: EdgeInsets.only(top: 64), // 避免导航栏遮住内容
        child: Center(
          child: Column(
            children: [
              CupertinoButton(
                padding: EdgeInsets.all(12), // 内间距
                child: Text("Normal CupertinoButton"), // 子部件
                color: Colors.amber, // 按钮颜色
                alignment: Alignment.center, // 对齐方式
                pressedOpacity: 0.5, // 按压下去时 button 透明度
                disabledColor: Colors.grey, // 不可交互时颜色,onPressed == null 时显示
                borderRadius: BorderRadius.circular(16),
                onPressed: () {}, // 点击事件
              ),
              SizedBox(height: 20),
              CupertinoButton(
                child: Text("Disable CupertinoButton"),
                color: Colors.pink,
                disabledColor: Colors.grey,
                alignment: Alignment.center,
                onPressed: null,
              ),
              SizedBox(height: 20),
              CupertinoButton(
                color: Colors.green[200],
                padding: EdgeInsets.symmetric(horizontal: 20), // 内边距
                minSize: 80, // 可以控制按钮的高度 宽度
                child: Row(
                  mainAxisSize: MainAxisSize.min,
                  children: [
                    Icon(Icons.radio_button_checked),
                    SizedBox(width: 20),
                    Text("CupertinoButton"),
                  ],
                ),
                onPressed: () {},
              ),
            ],
          ),
        ),
      ),
    );
  }
}

image.png
上一篇 下一篇

猜你喜欢

热点阅读