颤动:无限宽度

时间:2021-02-01 11:08:44

标签: flutter constraints

我正在做一个颤振课程,这是我的相关代码:

Container(
                  color: kBottomContainerColour,
                  margin: EdgeInsets.only(top: 10.0),
                  width: double.infinity,
                  height: kBottomContainerHeight,
                ),

我一直得到这个:

These invalid constraints were provided to _RenderColoredBox's layout() function by the following function, which probably computed the invalid constraints in question:
  RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:268:14)
The offending constraints were: BoxConstraints(w=Infinity, h=80.0)
The relevant error-causing widget was: 
  Container file:///F:/Works/Projects/flutter/Flutter-Course-Resources/bmi-calculator-flutter1/lib/input_page.dart:241:24

虽然它在课程中运行良好 请帮忙

2 个答案:

答案 0 :(得分:1)

代替 width: double.infinity

使用,

width: MediaQuery.of(context).size.width

答案 1 :(得分:0)

不要使用double.infinity。使用 MediaQuery 从当前小部件上下文中获取大小,并从中获取宽度。 在这种情况下,请执行以下操作:

Container(color: kBottomContainerColour,
                  margin: EdgeInsets.only(top: 10.0),
                  width: MediaQuery.of(context).size.width
                  height: kBottomContainerHeight,
                ),

请注意,每次使用 MediaQuery 时,小部件都会重新加载其状态。因此,请务必分解您的小部件,并遵循 google 的性能指南:

https://flutter.dev/docs/perf/rendering/best-practices