Flutter 创建带有形状装饰的图标按钮,并给出无效的常量值
我是新来的,我正在寻找椭圆形背景的图标扣 这是我正在使用的Flutter 创建带有形状装饰的图标按钮,并给出无效的常量值,flutter,Flutter,我是新来的,我正在寻找椭圆形背景的图标扣 这是我正在使用的 Ink( decoration: const ShapeDecoration( color: Theme.of(context).accentColor,, shape: CircleBorder(), ), child: IconButton( icon: Icon(Icons.add), color: Theme.of(context).primaryColor,
Ink(
decoration: const ShapeDecoration(
color: Theme.of(context).accentColor,,
shape: CircleBorder(),
),
child: IconButton(
icon: Icon(Icons.add),
color: Theme.of(context).primaryColor,
onPressed: () {},
),
),
您能告诉我如何在这个按钮中添加我的主题颜色吗?因为我有暗模式,当用户启用暗模式时,它也会改变按钮的颜色和背景等。根据官方文件:
您应该能够使用IconThemeData设置颜色
定义图标的颜色、不透明度和大小
IconTheme用于控制小部件子树中图标的颜色、不透明度和大小
要获取当前图标主题,请使用IconTheme.of
因此,需要为IconButton指定color属性,因为这会覆盖IconTheme size属性。如果您希望按钮的颜色来源于IconTheme,则应制作自定义IconButton,为您设置颜色
。。。在您的情况下,我会传递(甚至可能将其存储在一个单独的变量中,如currentThemeColor)当前颜色主题,并将其设置在此处:
...
IconThemeData(size: 48.0, color: currentThemeColor)
...
此外,您可能需要创建自定义图标按钮:
class CustomIconButton extends StatelessWidget {
CustomIconButton({Key key, this.onPressed, this.icon});
final Function onPressed;
final Icon icon;
@override
Widget build(BuildContext context) {
IconThemeData iconThemeData = IconTheme.of(context);
return IconButton(
onPressed: onPressed, color: iconThemeData.color, icon: icon);
}
}
根据官方文件:
您应该能够使用IconThemeData设置颜色
定义图标的颜色、不透明度和大小
IconTheme用于控制小部件子树中图标的颜色、不透明度和大小
要获取当前图标主题,请使用IconTheme.of
因此,需要为IconButton指定color属性,因为这会覆盖IconTheme size属性。如果您希望按钮的颜色来源于IconTheme,则应制作自定义IconButton,为您设置颜色
。。。在您的情况下,我会传递(甚至可能将其存储在一个单独的变量中,如currentThemeColor)当前颜色主题,并将其设置在此处:
...
IconThemeData(size: 48.0, color: currentThemeColor)
...
此外,您可能需要创建自定义图标按钮:
class CustomIconButton extends StatelessWidget {
CustomIconButton({Key key, this.onPressed, this.icon});
final Function onPressed;
final Icon icon;
@override
Widget build(BuildContext context) {
IconThemeData iconThemeData = IconTheme.of(context);
return IconButton(
onPressed: onPressed, color: iconThemeData.color, icon: icon);
}
}
使用FlatButton可以获得相同的结果
FlatButton(
onPressed: () {
},
color: Theme.of(context).hintColor.withOpacity(0.5),
shape: CircleBorder(),
child: Icon(Icons.add, color: Theme.of(context).primaryColor),
)
使用FlatButton可以获得相同的结果
FlatButton(
onPressed: () {
},
color: Theme.of(context).hintColor.withOpacity(0.5),
shape: CircleBorder(),
child: Icon(Icons.add, color: Theme.of(context).primaryColor),
)
问题不在图标按钮中问题在形状装饰中所以,问题解决了吗?如果没有,请让我知道,以便我可以尝试帮助进一步调查我使用FlatButton创建类似的按钮问题不在图标中按钮问题在形状装饰中所以,问题解决了吗?如果没有,请告诉我,以便我可以尝试帮助进行进一步调查。我使用FlatButton创建了类似的按钮