Flutter 填充值的无效常量值

Flutter Invalid constant value for padding value

我有一个 Widget 包裹在 Padding 中。我想对当前设备的 width 分别设置 rightPadding。 这是我试过的:

  child: Padding(
    padding: const EdgeInsets.only(
        top: 8,
        bottom: 8,
        right: MediaQuery.of(context).size.width / 30), // -> error
    child: Image.asset('assets/images/person.png'),
  ),

但我收到错误:

Invalid constant value

为什么会这样,我该如何解决这个问题?

您需要在 EdgeInsets 之前删除 const。为什么?因为如果您使用 var(MediaQuery.of(context).size.width).

它就不能保持不变

试试这个:

child: Padding(
    padding: EdgeInsets.only(
        top: 8,
        bottom: 8,
        right: MediaQuery.of(context).size.width / 30), // -> error
    child: Image.asset('assets/images/person.png'),
  ),