buildDrawerMenuWithIcon method

Widget buildDrawerMenuWithIcon(
  1. BuildContext context
)

Implementation

Widget buildDrawerMenuWithIcon(BuildContext context) {
  return Expanded(
    child: Container(
      color: widget.backgroundColorForDrawerPane ?? Colors.white,
      width: MediaQuery.of(context).size.width / widget.drawerWidth,
      height: MediaQuery.of(context).size.height,
      child: MediaQuery.removePadding(
        context: context,
        removeTop: widget.isDrawerHeaderRequired ? true : false,
        child: ListView(
          padding: EdgeInsets.zero,
          children: [
            ListView.builder(
              shrinkWrap: true,
              physics: const ClampingScrollPhysics(),
              itemCount: widget.tileListWithIcon.length,
              itemBuilder: (BuildContext context, int index) {
                return Column(
                  children: [
                    GestureDetector(
                      onTap: () {
                        setState(() {
                          widget.initialSelectionIndex = index;
                          widget.onTap(
                              widget.tileListWithIcon.keys.elementAt(index),
                              widget.initialSelectionIndex);
                          Navigator.of(context).pop();
                        });
                      },
                      child: Container(
                        color: widget.initialSelectionIndex == index
                            ? Colors.red
                            : widget.menuNotSelectedColor,
                        height: widget.drawerMenuHeight,
                        child: Row(
                          children: [
                            Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Icon(
                                widget.tileListWithIcon.values
                                    .elementAt(index),
                              ),
                            ),
                            Expanded(
                              child: Center(
                                child: Text(
                                  widget.tileListWithIcon.keys
                                      .elementAt(index),
                                  style: TextStyle(
                                      color: widget.menuFontColor,
                                      fontWeight: FontWeight.w500,
                                      fontSize: widget.menuFontSize ?? 10.0),
                                ),
                              ),
                            )
                          ],
                        ),
                      ),
                    ),
                    const Divider(height: 0.3)
                  ],
                );
              },
            ),
          ],
        ),
      ),
    ),
  );
}