Reputation: 181
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 ← ⋯
Upvotes: 1
Views: 642
Reputation: 3894
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
Upvotes: 0