refreshPresentDataAndController method
position 变动的列
selectedIndex 对应选中的index
jump 是否需要jumpToItem
Implementation
void refreshPresentDataAndController(int position, int selectedIndex, bool jump) {
// 新选中的数据
var selectValue = presentData[position][selectedIndex];
// 更新选中的数据
selectedData[position] = selectValue;
selectedIndexes[position] = selectedIndex;
if (jump) {
controllers[position].jumpToItem(selectedIndex);
}
// 如果不是最后一列 数据的变动都会造成剩下列的更新
if (position < columnNum - 1) {
if (presentData[position].length == 1 && presentData[position].first == placeData) {
presentData[position + 1] = [placeData];
} else {
presentData[position + 1] = findColumnData(position + 1);
}
refreshPresentDataAndController(position + 1, 0, true);
}
}