mainList method

dynamic mainList(
  1. dynamic setState
)

Implementation

mainList(setState) {
  return Scrollbar(
    child: Container(
      color: widget.dropdownBackgroundColor,
      child: ListView.builder(
          padding: EdgeInsets.zero,
          itemCount: newDataList.length,
          itemBuilder: (BuildContext context, int index) {
            return TextButton(
              style: TextButton.styleFrom(
                  // primary: widget.primaryColor?? Colors.black,
                  padding: const EdgeInsets.all(8),
                  tapTargetSize: MaterialTapTargetSize.shrinkWrap),
              child: Padding(
                padding: const EdgeInsets.fromLTRB(8, 0, 8, 0),
                child: Row(
                  children: [
                    Visibility(
                      visible: widget.multiSelect ?? false,
                      child: SizedBox(
                        width: 24,
                        height: 24,
                        child: Padding(
                          padding: const EdgeInsets.fromLTRB(
                            0,
                            0,
                            8,
                            0,
                          ),
                          child: Checkbox(
                              materialTapTargetSize:
                                  MaterialTapTargetSize.shrinkWrap,
                              value:
                                  selectedValues.contains(newDataList[index])
                                      ? true
                                      : false,
                              activeColor: Colors.green,
                              onChanged: (newValue) {
                                if (selectedValues
                                    .contains(newDataList[index])) {
                                  setState(() {
                                    selectedValues.remove(newDataList[index]);
                                  });
                                } else {
                                  setState(() {
                                    selectedValues.add(newDataList[index]);
                                  });
                                }
                              }),
                        ),
                      ),
                    ),
                    Expanded(
                      child: Text(
                        newDataList[index].split('-_-')[0].toString(),
                        style: widget.dropdownItemStyle ??
                            TextStyle(color: Colors.grey[700]),
                      ),
                    ),
                  ],
                ),
              ),
              onPressed: () {
                if (widget.multiSelect ?? false) {
                  if (selectedValues.contains(newDataList[index])) {
                    setState(() {
                      selectedValues.remove(newDataList[index]);
                    });
                  } else {
                    setState(() {
                      selectedValues.add(newDataList[index]);
                    });
                  }
                } else {
                  for (int i = 0; i < menuData.length; i++) {
                    if (menuData[i] == newDataList[index]) {
                      onSelectLabel = menuData[i].split('-_-')[0].toString();
                      widget.onChanged(widget.items[i]);
                    }
                  }
                  if (widget.menuMode ?? false) {
                    _menuController.reverse();
                  } else {
                    Navigator.pop(context);
                  }
                }
                setState(() {});
              },
            );
          }),
    ),
  );
}