Flutter:如何使用 MaterialStateProperty 设置 ElevatedButton 的最小宽度?

Flutter: How to use MaterialStateProperty to set ElevatedButton's minimumWidth?

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

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

我可以在 ElevatedButton 的样式属性上添加 'minimumSize':

style: ButtonStyle(minimumSize: ),

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

{MaterialStateProperty minimumSize} Type: MaterialStateProperty The minimum size of the button itself. The size of the rectangle the button lies within may be larger per tapTargetSize

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

这个 MaterialStateProperty 第一次使用时会感到困惑。如果你想为 MaterialState 中所有可能的状态(悬停、聚焦、按下……)设置相同的 minimumSize,你可以使用这个:

MaterialStateProperty.all(Size(width, height))

或者,如果您想对不同的州使用不同的 minimumSize,那么可以这样做:

MaterialStateProperty.resolveWith((states) {
  if (states.contains(MaterialState.disabled)) {
    return Size(width, height);
  }
  return Size(width, height);
}