微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改 Flutter 中按钮的颜色和样式

如何解决更改 Flutter 中按钮的颜色和样式

我已经迁移到 Flutter 2.0,这只是现在的新版本。在我的项目中,我使用了 Flat Buttons,但它现在在 Flutter 2.0 中被弃用,并且建议使用 Text Button 而不是 Flat Buttons

现在问题出在 Flat Buttons 中,有选项可以直接设置按钮的属性,例如 color,padding etc. 但是当我用 Text Button 替换它时,使用此属性时会出错。我查了文档,发现有style: ButtonStyle(backgroundcolor: ____________)属性。但是当我将 Colors.blue 放入 backgroundcolor 属性时,它给了我错误

所以我想知道 ButtonsFlutter 2.0 中的行为如何以及我们如何style Buttons

我的代码片段在这里,我想在其中设置按钮样式。

Container(
                  width: 200.0,child: TextButton(
                    style: ButtonStyle(),// I want to style this.
                    onpressed: () => Navigator.pushNamed(context,SignupPage.id),/*color: Colors.blue,padding: const EdgeInsets.all(10.0),*/ //Commented code is deprecated in Flutter 2.0
                    child: Text(
                      'Create Account',style: TextStyle(color: Colors.white,fontSize: 16.0),),

解决方法

带有 stylebackgroundcolor 参数是这样做的方法,但不接受 Color 对象,它的类型是 MaterialStateProperty<Color?>? 所以你应该提供一个对象那种类型。

文档在这里https://api.flutter.dev/flutter/material/TextButton-class.html
在这里https://api.flutter.dev/flutter/material/ButtonStyle-class.html

,

按钮现在有一个状态,所以你必须为每个状态定义颜色:

  • 您可以为所有状态定义一种颜色。

    按钮样式( backgroundColor: MaterialStateProperty.all(Colors.green),

  • 您可以为每个状态定义不同的颜色。

    按钮样式( backgroundColor: MaterialStateProperty.resolveWith( (设置状态){ 如果(states.contains(MaterialState.pressed)) 返回 Theme.of(context).colorScheme.primary.withOpacity(0.5); 返回空; // 使用组件的默认值。 },),

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。