Flutter:如何使用 MaterialStateProperty 设置 ElevatedButton 的 minimumWidth?

Sam*_*ord 2 themes widget flutter

我一直在疑惑这个问题。我希望具有不同文本的 2 个按钮具有相同的宽度。

我通过使 ElevatedButton 成为 SizedBox 的子项来实现这一点,但我担心如果用户将默认字体大小设置为大,则 Button 标题文本将被剪裁。

我可以在 ElevatedButton 的样式属性上放置一个“minimumSize”:

style: ButtonStyle(minimumSize: ),

但我不知道如何设置 minimumSize,它想要这个:

{MaterialStateProperty minimumSize} 类型:MaterialStateProperty 按钮本身的最小尺寸。每个tapTargetSize 按钮所在的矩形的大小可能更大

我不知道如何设置 MaterialStateProperty,Android Studio 抱怨“无法实例化抽象类”。帮助!

Ami*_*r_P 6

MaterialStateProperty当您想第一次使用它时,这会令人困惑。如果你想minimumSize为所有可能的状态MaterialState(悬停,聚焦,按下,...)设置相同的,你可以使用这个:

MaterialStateProperty.all(Size(width, height))
Run Code Online (Sandbox Code Playgroud)

或者,如果您想minimumSize为不同的状态设置不同的内容,那么这就是这样做的方法:

MaterialStateProperty.resolveWith((states) {
  if (states.contains(MaterialState.disabled)) {
    return Size(width, height);
  }
  return Size(width, height);
}
Run Code Online (Sandbox Code Playgroud)