1
votes

Before that, everything was in Container, and there were no problems, but an error flies with the 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.

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.

Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, Expanded widgets are placed directly inside Flex widgets. The offending Expanded is currently placed inside a Padding widget.

The ownership chain for the RenderObject that received the incompatible parent data was: Column ← Expanded ← Padding ← DecoratedBox ← ConstrainedBox ← Container ← AnimatedContainer ← ScrollingDayCalendar ← DecoratedBox ← ConstrainedBox ← ⋯

1

1 Answers

0
votes

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. Try using it inside the column. And mark the column with mainAxisSize: MainAxisSize.max