list method

Widget list()

Implementation

Widget list() {
  return Expanded(
    child: Scrollbar(
      child: ListView.builder(
        itemBuilder: (context, index) {
          DropdownMenuItem item = widget.items[shownIndexes[index]];
          return InkWell(
            onTap: () {
              if (widget.multipleSelection) {
                setState(() {
                  if (widget.selectedItems.contains(shownIndexes[index])) {
                    widget.selectedItems.remove(shownIndexes[index]);
                  } else {
                    widget.selectedItems.add(shownIndexes[index]);
                  }
                });
              } else {
                widget.selectedItems.clear();
                widget.selectedItems.add(shownIndexes[index]);
                if (widget.doneButton == null) {
                  pop();
                } else {
                  setState(() {});
                }
              }
            },
            child: widget.multipleSelection
                ? widget.displayItem == null
                    ? (Row(children: [
                        Icon(
                          widget.selectedItems.contains(shownIndexes[index])
                              ? Icons.check_box
                              : Icons.check_box_outline_blank,
                        ),
                        const SizedBox(
                          width: 7,
                        ),
                        Flexible(child: item),
                      ]))
                    : widget.displayItem!(item,
                        widget.selectedItems.contains(shownIndexes[index]))
                : widget.displayItem == null
                    ? item
                    : widget.displayItem!(item, item.value == selectedResult),
          );
        },
        itemCount: shownIndexes.length,
      ),
    ),
  );
}