NextPageCallback typedef
级联选择器 使用示例:
CascadePicker的page是ListView,没有约束的情况下它的高度是无限的,
因此需要约束高度。
final _cascadeController = CascadeController();
initialPageData: 第一页的数据
nextPageData: 下一页的数据,点击当前页的选择项后调用该方法加载下一页
- pageCallback: 用于传递下一页的数据给CascadePicker
- currentPage: 当前是第几页
- selectIndex: 当前选中第几项
controller: 控制器,用于获取已选择的数据
maxPageNum: 最大页数
selectedIcon: 已选中选项前面的图标,flutter package不能放本地资源文件,因此需要从外部传入,图标在images文件夹下面
Expand(
child: CascadePicker(
initialPageData: ['a', 'b', 'c', 'd'],
nextPageData: (pageCallback, currentPage, selectIndex) async {
pageCallback(['one', 'two', 'three'])
},
controller: _cascadeController,
maxPageNum: 4,
selectedIcon: Image.asset("images/ic_select_mark.png", width: 10, height: 10, color: Colors.redAccent,),
)
InkBox(
child: Container(...)
onTap: () {
/// 判断是否完成选择
if (_cascadeController.isCompleted()) {
List<String> selectedTitles = _cascadeController.selectedTitles;
List<int> selectedIndexes = _cascadeController.selectedIndexes;
}
}
)
pageData: 下一页的数据 currentPage: 当前是第几页, selectIndex: 当前页选中第几项
Implementation
/// pageData: 下一页的数据
/// currentPage: 当前是第几页,
/// selectIndex: 当前页选中第几项
typedef void NextPageCallback(Function(List<String>) pageData, int currentPage, int selectIndex);