簡體   English   中英

底部溢出 418 像素的 RenderFlex

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

在此之前,一切都在 Container 中,沒有任何問題,但是 animation 出現錯誤。 誰能幫忙?)

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,該 RenderObject 已設置為接受不兼容類型 BoxParentData 的 ParentData。

通常,這意味着 Expanded 小部件具有錯誤的祖先 RenderObjectWidget。 通常,擴展小部件直接放置在 Flex 小部件內。 有問題的 Expanded 當前放置在 Padding 小部件中。

接收到不兼容的父數據的 RenderObject 的所有權鏈是:Column ← Expanded ← Padding ← DecoratedBox ← ConstrainedBox ← Container ← AnimatedContainer ← ScrollingDayCalendar ← DecoratedBox ← ConstrainedBox ← ⋯

您不能在 AnimatedContainer 中使用擴展,因為它是擴展 Row、Column 或 Flex 的子級的小部件,以便子級填充可用空間。 嘗試在列內使用它。 並用mainAxisSize: MainAxisSize.max

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM