Language: English
city_pickers
中国的城市三级联动选择器
Demo
demo: https://pmbee.alicdn.com/flutter/city_pickers/index.html
沟通QQ群
QQ 群号码: 935915271
![image]()
开始
在flutter的项目文件中增加依赖
dependencies:
...
city_pickers:^1.1.0
关于如何运行flutter项目, 参考官方文档documentation.
使用方法
简单使用方法
import 'package:city_pickers/city_pickers.dart';
...
Future<Result?> getResult () async {
Result? result = await CityPickers.showFullPageCityPicker(
context: context
);
print('result $a');
Result? result = await CityPickers.showCityPicker(
context: context,
);
Result? result2 = await CityPickers.showFullPageCityPicker(
context: context,
);
Result? result2 = await CityPickers.showCitiesSelector(
context: context,
);
return result;
}
CityPickers 静态方法
| Name |
Type |
Desc |
| showCityPicker |
Function |
呼出弹出层,显示多级选择器 |
| showFullPageCityPicker |
Function |
呼出一层界面, 显示多级选择器 |
| showCitiesSelector |
Function |
呼出一层, 显示支持字母定位城市选择器 |
| utils |
Function |
获取utils接口的钩子 |
showCityPicker 参数说明
| Name |
Type |
Default |
Desc |
| context |
BuildContext |
|
上下文对象 |
| theme |
ThemeData |
Theme.of(context) |
主题, 可以自定义 |
| locationCode |
String |
110000 |
初始化地址信息, 可以是省, 市, 区的地区码 |
| height |
double |
300 |
弹出层的高度, 过高或者过低会导致容器报错 |
| showType |
ShowType |
ShowType.pca |
三级联动, 显示类型 |
| barrierOpacity |
double |
0.5 |
弹出层的背景透明度, 应该是大于0, 小于1 |
| barrierDismissible |
bool |
true |
是否可以通过点击弹出层背景, 关闭弹出层 |
| cancelWidget |
Widget |
|
用户自定义取消按钮 |
| confirmWidget |
Widget |
|
用户自定义确认按钮 |
| itemExtent |
double |
|
目标框高度 |
| itemBuilder |
Widget |
|
item生成器, function(String value, List lists, item){}, 当itemBuilder不为空的时候. 必须设置itemExtent |
| citiesData |
Map |
城市数据 |
选择器的城市与区的数据源 |
| provincesData |
Map |
省份数据 |
选择器的省份数据源 |
showFullPageCityPicker 参数说明
| Name |
Type |
Default |
Desc |
| context |
BuildContext |
null |
上下文对象 |
| theme |
ThemeData |
Theme.of(context) |
主题, 可以自定义 |
| locationCode |
String |
110000 |
初始化地址信息, 可以是省, 市, 区的地区码 |
| showType |
ShowType |
ShowType.pca |
三级联动, 显示类型 |
|citiesData|Map|城市数据|选择器的城市与区的数据源|
|provincesData|Map|省份数据|选择器的省份数据源|
showCitiesSelector 参数说明
| Name |
Type |
Default |
Desc |
| context |
BuildContext |
null |
上下文对象 |
| theme |
ThemeData |
Theme.of(context) |
主题, 可以自定义 |
| locationCode |
String |
110000 |
初始化地址信息, 可以是省, 市, 区的地区码 |
| title |
String |
城市选择器 |
弹出层界面标题 |
| citiesData |
Map |
城市数据 |
选择器的城市与区的数据源 |
| provincesData |
Map |
省份数据 |
选择器的省份数据源 |
| hotCities |
List<HotCity> |
null |
热门城市 |
| sideBarStyle |
BaseStyle |
初始默认样式 |
右侧字母索引集样式 |
| cityItemStyle |
BaseStyle |
初始默认样式 |
城市选项样式 |
| topStickStyle |
BaseStyle |
初始默认样式 |
顶部索引吸顶样式 |
| scaffoldBackgroundColor |
Colors |
Colors.white |
页面背景色 |
| useSearchAppBar |
bool |
false |
当AppBarBuilder=null的时候, 控制是否开启搜索框 |
| appBarBuilder |
Function |
null |
用户自定义AppBar |
utils 说明
utils 是用来封装常用的一些方法, 方便使用者能更好的使用该插件. 使用者通过以下方式声明实例, 可以获取所有的工具类方法
CityPickerUtil cityPickerUtils = CityPickers.utils();
Result getAreaResultByCode(String code)
使用者通过地区ID, 获取所在区域的省市县等相关信息. 当未查询到具体信息. 返回空的Result对象.
print('result>>> ${cityPickerUtils.getAreaResultByCode('100100)}');
数据来源
贡献者
声明
本项目Example部份代码与样式, 参考借鉴Flutter Go, flutter go 是flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档
To Do List
- [x] 城市选择器, 借鉴点评
- [x] 支持拼音等模糊搜索
- [ ] 加入单元测试