我得到了以下代码:
FlatButton.icon(
minWidth: double.infinity,
padding: EdgeInsets.symmetric(
vertical: kDefaultPadding,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
color: kPrimaryColor,
onPressed: () {},
icon: WebsafeSvg.asset("assets/Icons/Edit.svg", width: 16),
label: Text(
"New message",
style: TextStyle(color: Colors.white),
),
).addNeumorphism(
topShadowColor: Colors.white,
bottomShadowColor: Color(0xFF234395).withOpacity(0.2),
),
看起来FlatButtun
已经过时了,我必须将其转换为TextButton
,但是当我尝试转换时,minWith
参数出现错误。当我尝试将其与ConstrainedBox
打包时,padding
形状出现其他错误,等等。
我不知道如何使这个旧代码的工作如预期之前?
1条答案
按热度按时间eit6fx6z1#
正如我之前所说的,你不能只是把
FlatButton.icon
“转换”成TextButton.icon
,按钮的变化是breaking changes对Flutter所做的:Flutter增加了一组新的基本材质按钮部件和主题。原来的类已经过时,最终将被删除。总体目标是使按钮更灵活,更容易通过构造函数参数或主题进行配置。
因此,要解决您的问题,您必须编写自己的小部件来接近
FlatButton.icon
。对于您的示例,可以使用
Padding
小部件填充,使用SizedBox
填充宽度。对于圆角,可以使用style
属性。使用
TextButton.icon
时,按钮代码可能如下所示: