mainList method
dynamic
mainList(
- 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(() {});
},
);
}),
),
);
}