0

我的问题与这篇文章有关: Flutter const with const constructors

我有一个问题试图摆脱我的大多数小部件下的蓝色波浪线以及我以前从未见过的 MyApp 类。我用 const 构造函数为所有小部件添加前缀,但问题只是转移到我的代码的不同区域。在另一个项目中编码时我没有这个问题,所以认为它可能是 main.dart 文件之外的东西。

下面的屏幕截图说明了错误和我的修复尝试。

void main() => runApp(MyApp());


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        backgroundColor: Colors.teal[900],
        body:  SafeArea(
          child: Center(
            child:  Row(
              children: [
                Expanded(
                  child: Image(
                    image: AssetImage('images/dice1.png'),
                  ),
                ),
                SizedBox(
                  width: 20,
                ),
                Expanded(
                  child: Image(
                    image: AssetImage('images/dice1.png'),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

我有一个简单的解决方案来避免 const 构造函数。进入你的analysis_options.yaml文件,并将这一行放在规则部分的底部

rule: 
  prefer_const_construtors: false,
于 2022-01-16T10:25:20.313 回答
0

您应该将const关键字可能放在小部件树中的最高位置。因此,如果您在列表中有三个常量子项(Row在您的示例中为 a ),则整个列表就是 aconst本身。

如果列表中的所有子项都是常量,请将const关键字放在列表之前。

所以代替这个:

Row(
  children: [
    const Child1(),
    const Child2(),
    ...
  ],
)

做这个:

Row(
  children: const [
    Child1(),
    Child2(),
    ...
  ],
)

有关更多信息,请参阅:https ://dart.dev/guides/language/effective-dart/usage#dont-use-const-redundantly

于 2021-12-10T10:53:07.460 回答