Flutter 如何制作渐变背景的高架按钮?

Flutter 如何制作渐变背景的高架按钮?,flutter,flutter-layout,Flutter,Flutter Layout,我正在尝试创建一个带有渐变背景的提升按钮,但它提供了一些不太适合它的参数,并且您可能知道,在颤振2.0版本之后,大多数按钮类都被弃用,例如提升按钮、平面按钮等等。。。等 ElevatedButton( child: Text('Woolha.com'), style: ElevatedButton.styleFrom( primary: Colors.teal, onPrimary: Colors.white, onSurface: Colors.grey, ), onPressed

我正在尝试创建一个带有渐变背景的提升按钮,但它提供了一些不太适合它的参数,并且您可能知道,在颤振2.0版本之后,大多数按钮类都被弃用,例如提升按钮、平面按钮等等。。。等

ElevatedButton(
child: Text('Woolha.com'),
style: ElevatedButton.styleFrom(
  primary: Colors.teal,
  onPrimary: Colors.white,
  onSurface: Colors.grey,
),
onPressed: () {
  print('Pressed');
},
)

是否仍然可以创建带有渐变背景的提升按钮?

输出:


代码:

装饰盒(
装饰:框装饰(渐变:LinearGradient(颜色:[colors.red,colors.blue])),
儿童:升降按钮(
按下:(){},
样式:ElevatedButton.styleFrom(主:颜色.透明),
子项:文本(“提升按钮”),
),
)

输出:


代码:

装饰盒(
装饰:框装饰(渐变:LinearGradient(颜色:[colors.red,colors.blue])),
儿童:升降按钮(
按下:(){},
样式:ElevatedButton.styleFrom(主:颜色.透明),
子项:文本(“提升按钮”),
),
)
容器(
宽度:1120.w,
高度:180,
边距:从LTRB(0,10,0,10)开始的边距集,
装饰:盒子装饰(
梯度:线性梯度(
颜色:[颜色(0xFF0379C6),颜色(0xFF1298EF)],
边界半径:边界半径。圆形(25.r),
boxShadow:[
箱形阴影(
颜色:颜色。来自RGBO(161422330.57),
(半径:13)
]),
儿童:升降按钮(
样式:钮扣样式(
背景颜色:MaterialStateProperty.all(
颜色。透明),
),
按下时:()=>设置状态(){
//_launched=_makePhoneCall('tel:$_phone');
}),
子:文本(
“提交”,
风格:
TextStyle(颜色:Colors.white,fontSize:64.sp),
),
),
)
容器(
宽度:1120.w,
高度:180,
边距:从LTRB(0,10,0,10)开始的边距集,
装饰:盒子装饰(
梯度:线性梯度(
颜色:[颜色(0xFF0379C6),颜色(0xFF1298EF)],
边界半径:边界半径。圆形(25.r),
boxShadow:[
箱形阴影(
颜色:颜色。来自RGBO(161422330.57),
(半径:13)
]),
儿童:升降按钮(
样式:钮扣样式(
背景颜色:MaterialStateProperty.all(
颜色。透明),
),
按下时:()=>设置状态(){
//_launched=_makePhoneCall('tel:$_phone');
}),
子:文本(
“提交”,
风格:
TextStyle(颜色:Colors.white,fontSize:64.sp),
),
),
)

好吧,它没有给我想要的方式,它给背景增加了额外的空间。@MuhamadHaydarJawad你是什么意思?你能发布你所看到的屏幕截图(额外的背景部分)吗。如果你用它来填充,你可以简单地设置
填充:EdgeInsets.zero
最小尺寸:Size.zero
。好吧,它没有给我想要的方式,它给背景增加了额外的空间。@MuhamadHaydarJawad你是什么意思?你能发布你所看到的屏幕截图(额外的背景部分)吗。如果您指的是padding,那么只需设置
padding:EdgeInsets.zero
minimumSize:Size.zero
Container(
                    width: 1120.w,
                    height: 180.h,
                    margin: EdgeInsets.fromLTRB(0, 10, 0, 10),
                    decoration: BoxDecoration(
                        gradient: LinearGradient(
                            colors: [Color(0xFF0379C6), Color(0xFF1298EF)]),
                        
                        borderRadius: BorderRadius.circular(25.r),
                        boxShadow: <BoxShadow>[
                          BoxShadow(
                              color: Color.fromRGBO(16, 142, 233, 0.57),
                              blurRadius: 13)
                        ]),
                    child: ElevatedButton(
                      style: ButtonStyle(
                        backgroundColor: MaterialStateProperty.all(
                            Colors.transparent), 
                      ),
                      onPressed: () => setState(() {
                        // _launched = _makePhoneCall('tel:$_phone');
                      }),
                      child: Text(
                        'Submit',
                        style:
                            TextStyle(color: Colors.white, fontSize: 64.sp),
                      ),
                    ),
                  )