Flutter如何避免MaterialStateProperty

问题描述 投票:0回答:2

最近我想使用一些像

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)),
          ),

我想知道这是为什么?这是通过新的更新引入的吗?我发现它非常烦人和吵闹,但无法找到使用正常小部件的方法了。

flutter flutter-layout flutter-dependencies
2个回答
1
投票

您可以使用 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)
  ),
),

0
投票

“MaterialStateProperty”已弃用,不应使用,请改用“WidgetStateProperty”

查看问题 https://github.com/flutter/flutter/issues/148218

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.