最近我想使用一些像
TextButton
这样的小部件,我发现我必须使用 MaterialStateProperty
包装器来实现 TextButton
小部件的许多属性。
child: TextButton(
style: ButtonStyle(
padding: MaterialStateProperty.all(EdgeInsets.only(
left: 10,
right: 10,
top: 5,
bottom: 5,
)),
elevation: MaterialStateProperty.all(2),
shadowColor: MaterialStateProperty.all<Color>(Colors.black),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
side: BorderSide(color: Color.fromRGBO(85, 63, 48, 1.0), width: 1, strokeAlign: StrokeAlign.outside), borderRadius: BorderRadius.circular(2))),
backgroundColor: MaterialStateProperty.all(Color.fromRGBO(241, 206, 181, 1.0)),
),
我想知道这是为什么?这是通过新的更新引入的吗?我发现它非常烦人和吵闹,但无法找到使用正常小部件的方法了。
您可以使用 TextButton.styleFrom 代替 ButtonStyle,如下所示:
TextButton(
style: TextButton.styleFrom(
padding: EdgeInsets.only(
left: 10,
right: 10,
top: 5,
bottom: 5,
),
elevation: 2,
shadowColor: Colors.black,
shape: RoundedRectangleBorder(
side: BorderSide(
color: Color.fromRGBO(85, 63, 48, 1.0),
width: 1,
strokeAlign: StrokeAlign.outside
),
borderRadius: BorderRadius.circular(2)
),
backgroundColor: Color.fromRGBO(241, 206, 181, 1.0)
),
),
“MaterialStateProperty”已弃用,不应使用,请改用“WidgetStateProperty”