参数类型“EdgeInsets”无法分配给参数类型“MaterialStateProperty<EdgeInsetsGeometry?>?”

arr*_*i88 7 flutter

我正在尝试向我的小部件添加一些填充,但遇到了这个问题:

TextButton(
  style: ButtonStyle(
    padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 60.0),
  ),
  onPressed: () {}, child: const Text('Text'),
),
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Jea*_*PNM 13

使用MaterialStateProperty允许您传递一个取决于材质小部件状态的值(通常是MaterialState)。

例如,当按钮被按下时需要更改其颜色或大小时,这可能非常有用。

在你的情况下,使用MaterialStateProperty.all如下应该修复它。

TextButton(
  style: ButtonStyle(
    padding: MaterialStateProperty.all(
      EdgeInsets.symmetric(vertical: 20.0, horizontal: 60.0),
    ),
  ),
  onPressed: () {}, child: const Text('Text'),
),
Run Code Online (Sandbox Code Playgroud)

这个类似的问题也值得一提。

编辑:来自 flutter 频道的相关视频