RenderFlex底部溢出418像素

时间:2020-06-10 15:11:12

标签: flutter animation widget

在此之前,所有内容都在Container中,并且没有问题,但是动画出现了错误。谁可以提供帮助?)

return AnimatedContainer(
          curve: Curves.easeInCirc,
          duration: Duration(milliseconds: 200),
          height: _heightWidget,
          decoration: isTaped
              ? BoxDecoration(
                  border: Border(
                    bottom: BorderSide(
                        width: 0.0, color: Color.fromRGBO(131, 134, 163, 0.52)),
                  ),
                )
              : BoxDecoration(
                  border: Border(
                    bottom: BorderSide(
                        width: 1.0, color: Color.fromRGBO(131, 134, 163, 0.52)),
                  ),
                ),
          child: Expanded(
            child: Column(
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Container(
                      height: 43.0,
                      width: 60.0,
                      color: widget.dateBackgroundColor != null
                          ? widget.dateBackgroundColor
                          : Colors.green,
                      child: Center(
                        child: MaterialButton(
                          onPressed: () {
                            _pageController.previousPage(
                              duration: widget.pageChangeDuration != null
                                  ? widget.pageChangeDuration
                                  : Duration(microseconds: 500),
                              curve: Curves.easeIn,
                            );
                          },
                          child: Icon(
                            widget.backwardIcon == null
                                ? Icons.arrow_back
                                : widget.backwardIcon,
                            color: Colors.black,
                          ),
                        ),
                      ),
                    ),
                    Expanded(
                      child: Container(
                        height: 43.0,
                        color: widget.dateBackgroundColor != null
                            ? widget.dateBackgroundColor
                            : Colors.red,
                        child: Padding(
                          padding: EdgeInsets.only(top: 0.0, bottom: 0.0),
                          child: Center(
                              child: Row(
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: <Widget>[
                              GestureDetector(
                                  onTap: () {
                                    setState(() {
                                      isTaped = !isTaped;
                                      isTaped
                                          ? _heightWidget = 464.0
                                          : _heightWidget = 44.0;
                                    });
                                  },
                                  child: Row(
                                    children: <Widget>[
                                      Image.asset('assets/icons/calendar.png'),
                                      SizedBox(
                                        width: 10.0,
                                      ),
                                      Text(
                                        checkDateToday(DateFormat(
                                                widget.displayDateFormat == null
                                                    ? widget.displayDateFormat
                                                    : "dd.MM.yyyy")
                                            .format(_selectedDate)),
                                        style: widget.dateStyle != null
                                            ? widget.dateStyle
                                            : TextStyle(
                                                color: Colors.black,
                                                fontSize: 14.0,
                                                fontWeight: FontWeight.w100,
                                              ),
                                      ),
                                    ],
                                  )),
                            ],
                          )),
                        ),
                      ),
                    ),
                    Container(
                      height: 43.0,
                      width: 60.0,
                      color: widget.dateBackgroundColor != null
                          ? widget.dateBackgroundColor
                          : Colors.red,
                      child: Center(
                        child: MaterialButton(
                          onPressed: () {
                            _pageController.nextPage(
                              duration: widget.pageChangeDuration != null
                                  ? widget.pageChangeDuration
                                  : Duration(milliseconds: 700),
                              curve: Curves.easeIn,
                            );
                          },
                          child: Icon(
                            widget.forwardIcon == null
                                ? Icons.arrow_forward
                                : widget.forwardIcon,
                            color: Colors.black,
                          ),
                        ),
                      ),
                    ),
                  ],
                ),
                Container(
                    decoration: BoxDecoration(
                      border: isTaped
                          ? Border(
                              top: BorderSide(
                                  width: 1.0,
                                  color: Color.fromRGBO(131, 134, 163, 0.52)),
                            )
                          : null,
                    ),
                    padding: EdgeInsets.only(left: 0, right: 0),
                    child: isTaped
                        ? Column(
                            children: <Widget>[
                              SizedBox(height: 12.0),
                              Container(
                                child: SizedBox(
                                    height: 21.0,
                                    child: GridView.count(
                                      crossAxisCount: 7,
                                      primary: false,
                                      children: weekDaysOnTop,
                                    )),
                              ),
                              Row(
                                children: <Widget>[
                                  Container(
                                      margin: EdgeInsets.only(
                                          left: 25, top: 10, bottom: 0),
                                      child: Text(
                                        _currentMonth,
                                        style: TextStyle(
                                          color: Color.fromRGBO(83, 83, 83, 1),
                                          fontWeight: FontWeight.bold,
                                          fontSize: 24.0,
                                        ),
                                      )),
                                ],
                              ),
                              Container(
                                child: _calendarCarousel,
                              ),
                              Row(
                                children: <Widget>[
                                  Container(
                                      margin: EdgeInsets.only(
                                          left: 25, top: 10, bottom: 0),
                                      child: Text(
                                        _nextMonth,
                                        style: TextStyle(
                                          color: Color.fromRGBO(83, 83, 83, 1),
                                          fontWeight: FontWeight.bold,
                                          fontSize: 24.0,
                                        ),
                                      )),
                                ],
                              ),
                            ],
                          )
                        : null),
                Expanded(
                    child: PageView.builder(
                        controller: _pageController,
                        scrollDirection: Axis.horizontal,
                        itemCount: _totalPages,
                        onPageChanged: (direction) => _onPageChange(direction),
                        itemBuilder: (context, index) {
                          return _buildPage(index);
                        })),
              ],
            ),
          ),
        );

════════小部件库捕获到异常══════════════════════════════════ ═ 应用父数据时引发了以下断言: 错误使用ParentDataWidget。

ParentDataWidget Expanded(flex:1)希望将FlexParentData类型的ParentData应用于RenderObject,该对象已设置为接受不兼容类型BoxParentData的ParentData。

通常,这表示扩展窗口小部件的祖先RenderObjectWidget错误。通常,扩展小部件直接放置在Flex小部件内部。 令人讨厌的“扩展”目前位于“填充”小部件内。

接收到不兼容父数据的RenderObject的所有权链为: 列←展开←填充←DecoratedBox←ConstrainedBox←容器←AnimatedContainer←ScrollingDayCalendar←DecoratedBox←ConstrainedBox←⋯

1 个答案:

答案 0 :(得分:0)

您不能在AnimatedContainer内部使用expanded,因为它是一个可扩展Row,Column或Flex子级的小部件,以便该子级填充可用空间。尝试在列内使用它。并用mainAxisSize: MainAxisSize.max

标记该列