Flutter设置Button的大小

随着Flutter 2.0的发布,官方推荐使用ElevatedButton代替RaiseButton。本文介绍了如何使用ElevatedButton实现按钮的大小设置,包括如何让它占满屏幕。通过示例代码展示了ElevatedButton的基本用法,如设置固定大小、自适应屏幕尺寸以及自定义样式,帮助开发者顺利过渡到新的API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flutter 2.0之前,一般使用RaiseButton

/// 和父widget的宽度或高度保持一致
SizedBox.expand(
  child: RaisedButton(...),
)
/// 设置固定的值
使用Container或者SizeBox设置大小即可。

Flutter 2.0之后,官方使用ElevatedButton替代了RaiseButton。

ElevatedButton(
      onPressed: () => _login(_controllers[0].text.trim().toString(),
          _controllers[1].text.trim().toString(), context),
      child: Text('login'),
      style: ElevatedButton.styleFrom(
          minimumSize: const Size(100, 50),
          shape:
              RoundedRectangleBorder(borderRadius: BorderRadius.circular(30))),
    );

如果想占满屏幕,将Size中的width使用double.infinity就可以了

### 如何在 Flutter 中创建和配置按钮组件 #### 创建 ElevatedButton 组件 ElevatedButton 是一种带有提升效果的按钮,在按下时会有轻微的阴影变化。此按钮适用于需要强调操作的地方。 ```dart ElevatedButton( onPressed: () { print('这是 ElevatedButton'); }, style: ButtonStyle( backgroundColor: MaterialStateProperty.all<Color>(Colors.blue), padding: MaterialStateProperty.all<EdgeInsets>( EdgeInsets.symmetric(horizontal: 20.0, vertical: 15.0), ), textStyle: MaterialStateProperty.all<TextStyle>( TextStyle(fontSize: 20), ), ), child: Text('点击'), ) ``` 上述代码展示了如何通过 `style` 参数来自定义按钮样式,包括背景颜色、内边距以及文字大小等属性[^3]。 #### 使用 IconButton 实现图标按钮 IconButton 主要用于显示一个小图标作为触发器,通常放置于工具栏或其他控件内部。 ```dart IconButton( icon: Icon(Icons.thumb_up), tooltip: '点赞', onPressed: () { print('点赞成功!'); } ) ``` 这段代码说明了如何利用 `icon` 属性指定图标资源,并设置了悬停提示信息 `tooltip` 和点击事件处理器 `onPressed`[^4]。 #### 构建 OutlinedButton 带轮廓线的按钮 此类按钮具有明显的边界线条,适合用作次要动作选项。 ```dart OutlinedButton.icon( label: Text('注册账号'), icon: Icon(Icons.person_add_alt_1_rounded), onPressed: () {}, ); ``` 这里采用 `.icon()` 方法构造了一个包含左侧图标的按钮实例;同时也可以调整其外观特性如边框粗细、颜色等参数。 #### 自定义按钮尺寸与形状 对于希望进一步定制按钮外形的需求,可以借助 `fixedSize`, `minimumSize`, 或者 `side` 等属性来进行微调: ```dart Container( width: double.infinity, height: 50, margin: const EdgeInsets.only(top: 8,bottom: 8), decoration: BoxDecoration( borderRadius: BorderRadius.circular(25), ), child:ElevatedButton( onPressed: null,// 设置为null表示禁用状态 style: ElevatedButton.styleFrom( primary: Colors.grey.shade300, onPrimary: Colors.black, shape: RoundedRectangleBorder(borderRadius:BorderRadius.circular(25)) ), child: Padding(padding:const EdgeInsets.fromLTRB(0, 10, 0, 10),child:Text("登录",style:TextStyle(fontSize: 16)),), ) ) ``` 以上例子中不仅改变了按钮的高度宽度还指定了圆角半径使得视觉上更加美观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值