itemOnSelected method
点击按钮选项
index
按钮下标
Implementation
void itemOnSelected(int index, int column,
[bool isHighlighted = true]) async {
if (onItemIntercept != null) {
final isIntercept =
await onItemIntercept!.call(value.idxList, value.data);
if (isIntercept == true) {
return;
}
}
final items = getColumn(column);
final item = items[index];
// 处理互斥选项
for (var e in items) {
// 如果当前为全选,则清空其他选项
if (item.isMutex) {
if (e.name != item.name) {
e.selected = false;
chidrenSelected(e.items, false);
}
} else {
if (e.isMutex) {
e.selected = false;
chidrenSelected(e.items, false);
}
}
}
// 设置当前及子集选中
item.selected = !item.selected;
chidrenSelected(item.items, item.selected);
for (var i = 0; i < value.idxList.length; i++) {
if (i >= column) {
break;
}
final idx = value.idxList[i];
final list = getColumn(i);
if (list[idx].items.isNotEmpty) {
list[idx].selected = chidrenSelectedStatus(list[idx].items);
}
}
// 切换选中项
itemOnHightlighted(index, column);
}