Я создал боковое меню в webApp, которое всегда открывалось. У меня есть кнопка со значком, чтобы скрыть / показать это меню. Я хочу, чтобы при открытии меню первая страница должна была быть уменьшена, после того как скрыть меню, чтобы развернуть эту страницу. В меню будет 5 категорий, которые после нажатия открывают страницу, и каждая страница должна совпадать с первой страницей (развернуть / сжать). Как это сделать? мой код:
class AdminPage extends StatefulWidget {
@override
_AdminPage createState() => _AdminPage();
}
class _AdminPage extends State<AdminPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.deepOrange,
),
body: Stack(
children: <Widget>[
FirstPage(),
SideMenu(),
],
),
);
}
}
боковое меню:
class SideMenu extends StatefulWidget {
@override
_SideMenuState createState() => _SideMenuState();
}
bool isSideBarOpened = true;
final _animationDuration = const Duration(milliseconds: 1000);
class _SideMenuState extends State<SideMenu> {
@override
Widget build(BuildContext context) {
final screenWidth = MediaQuery.of(context).size.width;
return AnimatedPositioned(
duration: _animationDuration,
top: 0,
bottom: 0,
left: isSideBarOpened ? 0 : 0,
right: isSideBarOpened ? 0 : screenWidth - 35,
child: Row(
children: <Widget>[
Flexible(
child: Container(
width: 300.0,
color: Colors.blueGrey,
),
),
Align(
alignment: Alignment(0, -0.9),
child: Container(
width: 35,
height: 100,
color: Colors.amberAccent,
child: IconButton(
icon: Icon(Icons.menu),
onPressed: () {
setState(() {
isSideBarOpened = !isSideBarOpened;
});
},
),
),
)
],
),
);
}
}