本地环境
Ionic: Ionic CLI : 6.17.1 Ionic Framework : @ionic/angular 5.9.2 @angular-devkit/build-angular : 12.0.0 @angular-devkit/schematics : 12.0.5 @angular/cli : 12.0.5 @ionic/angular-toolkit : 4.0.0
问题阐明
多列抉择的时候,动静刷新其余列,呈现选项全挤在一行的状况,滑动后恢复正常。
属于官网未解决的bug:
https://github.com/ionic-team...
解决方案
每列的选项数量固定为可能性的最大值,理论选项有余的时候填补空白选项,并设置disabled属性。这样空选项不会显示进去。
if (newOptions.length < max) { for (let j = newOptions.length - 1; j < max; j++) { const disabledOption: PickerColumnOption = { text: '', value: -1, disabled: true, // 空白选项不显示 transform: '', // 解决切换选项后,有时选项不会显示的问题 } newOptions.push(disabledOption) } }
触发刷新还须要保障列PickerColumn的prevSelected != selectedIndex,比方新建列前者不设置,后者设为0.