Как сделать значок меню интерактивным, чтобы ящик мог открываться при щелчке значка меню бургера? Я сделал ящик в отдельном файле дротика, чтобы его можно было использовать в качестве многоразового компонента на других нескольких страницах. Это дизайн панели приложений со значком меню, из которого я sh вызываю свой ящик: Изображение панели приложений с меню и значком поиска . Спасибо, что прочитали этот длинный параграф :)
Вот мой код для панели приложений:
class Bar extends StatelessWidget {
Widget appBar(String text) {
return PreferredSize(
child: Container(
color: Colors.white,
padding: EdgeInsets.only(left: 10, right: 10, top: 10, bottom: 10),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
SvgPicture.asset('assets/menu.svg'),
Text(
text,
style: TextStyle(fontWeight: FontWeight.bold),
),
SvgPicture.asset('assets/search.svg')
],
),
),
preferredSize: Size.fromHeight(40));
}
@override
Widget build(BuildContext context) {
return Bar();
}
}
А это фрагмент кода для моего ящика, в котором я создал собственный виджет внутри основной ящик:
class MainDrawer extends StatelessWidget {
Widget drawerTiles(String tileIcon, String tileText, IconData tileRightIcon) {
return Padding(
padding:
const EdgeInsets.only(top: 8.0, left: 16, right: 32.0, bottom: 8.0),
child: Row(
children: <Widget>[
CircleAvatar(
radius: 14,
backgroundColor: Hexcolor('#0565ac'),
child: Padding(
padding: EdgeInsets.all(0),
child: SvgPicture.asset(tileIcon),
),
),
SizedBox(
width: 16,
),
Text(
tileText,
style: TextStyle(
fontSize: 12, fontWeight: FontWeight.w600, color: Colors.black),
),
Spacer(),
Icon(tileRightIcon)
],
),
);
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Drawer(