最近在跟着flutter-go项目学习研究, 发现有一位同窗提出了一条建议android
@songshitong 有flutter的城市选择组件(city picker)吗 android和iOS风格的? 相似于这个ios
我就在本地简单的去模拟实现了一下. 发现代码逻辑部份比较简单. 因此就简单的封装成一个package. 发布到了Dart Pub上边, 欢迎你们扔板砖~git
暂时实现了三种github
最初设计的时候. 想着以Widget的方式, 扔给你们使用. 但是试了几种方式, 使用起来都比较麻烦. 后来借鉴了一下函数式编程的思想, 最终定为经过静态函数调用:编程
import 'package:city_pickers/city_pickers.dart';
...
show() async {
Result result = await CityPickers.showCityPicker(
context: context,
);
// type 2
Result result2 = await CityPickers.showFullPageCityPicker(
context: context,
);
}
复制代码
Name | Type | Desc |
---|---|---|
showCityPicker | Function | 呼出弹出层,显示多级选择器 |
showFullPageCityPicker | Function | 呼出一层界面, 显示多级选择器 |
showCitiesSelector | Function | 呼出一层, 显示支持字母定位城市选择器 |
Name | Type | Default | Desc |
---|---|---|---|
context | BuildContext | null | 上下文对象 |
theme | ThemeData | Theme.of(context) | 主题, 能够自定义 |
locationCode | String | 110000 | 初始化地址信息, 能够是省, 市, 区的地区码 |
height | double | 300 | 弹出层的高度, 太高或者太低会致使容器报错 |
showType | ShowType | ShowType.pca | 三级联动, 显示类型 |
barrierOpacity | double | 0.5 | 弹出层的背景透明度, 应该是大于0, 小于1 |
barrierDismissible | bool | true | 是否能够经过点击弹出层背景, 关闭弹出层 |
Name | Type | Default | Desc |
---|---|---|---|
context | BuildContext | null | 上下文对象 |
theme | ThemeData | Theme.of(context) | 主题, 能够自定义 |
locationCode | String | 110000 | 初始化地址信息, 能够是省, 市, 区的地区码 |
showType | ShowType | ShowType.pca | 三级联动, 显示类型 |
具体使用方式, 能够参考本地运行示例git:city_pickersbash
flutter-go:flutter 开发者帮助 APP,包含 flutter 经常使用 140+ 组件的demo 演示与中文文档async