简体   繁体   English

底部溢出 418 像素的 RenderFlex

[英]A RenderFlex overflowed by 418 pixels on the bottom

Before that, everything was in Container, and there were no problems, but an error flies with the animation.在此之前,一切都在 Container 中,没有任何问题,但是 animation 出现错误。 Who can help?)谁能帮忙?)

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);
                        })),
              ],
            ),
          ),
        );

════════ Exception caught by widgets library ═══════════════════════════════════ The following assertion was thrown while applying parent data.: Incorrect use of ParentDataWidget. ════════ 小部件库捕获的异常═════════════════════════════␕══以下应用父数据时抛出断言。:ParentDataWidget 使用不正确。

The ParentDataWidget Expanded(flex: 1) wants to apply ParentData of type FlexParentData to a RenderObject, which has been set up to accept ParentData of incompatible type BoxParentData. ParentDataWidget Expanded(flex: 1) 想要将 FlexParentData 类型的 ParentData 应用于 RenderObject,该 RenderObject 已设置为接受不兼容类型 BoxParentData 的 ParentData。

Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget.通常,这意味着 Expanded 小部件具有错误的祖先 RenderObjectWidget。 Typically, Expanded widgets are placed directly inside Flex widgets.通常,扩展小部件直接放置在 Flex 小部件内。 The offending Expanded is currently placed inside a Padding widget.有问题的 Expanded 当前放置在 Padding 小部件中。

The ownership chain for the RenderObject that received the incompatible parent data was: Column ← Expanded ← Padding ← DecoratedBox ← ConstrainedBox ← Container ← AnimatedContainer ← ScrollingDayCalendar ← DecoratedBox ← ConstrainedBox ← ⋯接收到不兼容的父数据的 RenderObject 的所有权链是:Column ← Expanded ← Padding ← DecoratedBox ← ConstrainedBox ← Container ← AnimatedContainer ← ScrollingDayCalendar ← DecoratedBox ← ConstrainedBox ← ⋯

You can't use expanded inside AnimatedContainer as it is a widget that expands a child of a Row, Column, or Flex so that the child fills the available space.您不能在 AnimatedContainer 中使用扩展,因为它是扩展 Row、Column 或 Flex 的子级的小部件,以便子级填充可用空间。 Try using it inside the column.尝试在列内使用它。 And mark the column with mainAxisSize: MainAxisSize.max并用mainAxisSize: MainAxisSize.max

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM