Ящик в трепете - PullRequest
       17

Ящик в трепете

0 голосов
/ 03 августа 2020

Как сделать значок меню интерактивным, чтобы ящик мог открываться при щелчке значка меню бургера? Я сделал ящик в отдельном файле дротика, чтобы его можно было использовать в качестве многоразового компонента на других нескольких страницах. Это дизайн панели приложений со значком меню, из которого я 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(
...