5 分钟跑通 CityPicker:Android 省市区三级联动选择完整集成教程
【免费下载链接】citypickercitypicker城市选择器,详细的省市区地址信息,支持仿iOS滚轮实现,仿京东样式,一级或者三级列表展示方式。项目地址: https://gitcode.com/gh_mirrors/ci/citypicker
你在做电商或物流 App 时,是不是遇到过这样的场景:地址选择要省、市、区三级联动,后端又没给接口,只能自己造数据、造界面?CityPicker 是一款轻量级的 Android 城市选择库,内置省市区数据源,几行代码就能用起来。它支持仿 iOS 滚轮、仿京东样式、一级城市列表、三级城市列表四种展示方式。
⏱ 三步跑通 CityPicker 滚轮
第 1 步:加仓库源。在 Project 级 build.gradle 里加 jitpack:
allprojects { repositories { maven { url 'https://jitpack.io' } } }第 2 步:加依赖。app 模块 build.gradle 里加一行,6.0.2 是最新版本:
implementation 'com.github.crazyandcoder:citypicker:6.0.2'第 3 步:调用滚轮选择。核心代码不到 20 行:
CityPickerView cityPickerView = new CityPickerView(); cityPickerView.init(this); CityConfig cityConfig = new CityConfig.Builder() .title("选择城市") .province("江苏") .city("常州") .district("新北区") .build(); cityPickerView.setConfig(cityConfig); cityPickerView.setOnCityItemClickListener(new OnCityItemClickListener() { @Override public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) { // 这里拿到选中的省、市、区 } @Override public void onCancel() { } }); cityPickerView.showCityPicker();跑起来会弹出一个滚轮,默认选中定位在江苏、常州、新北区。
🛠 进阶玩法:换联动级别和样式
- 自由切换联动级别:给 Builder 传 WheelType,就只展示对应的级数。只要省用
PRO,只要省市用PRO_CITY:
CityConfig cityConfig = new CityConfig.Builder() .setCityWheelType(CityConfig.WheelType.PRO_CITY) .build();- 换仿京东样式:类名换成 JDCityPicker,布局变成左右两栏的省市列表。配置同样是 Builder,用 ShowType 控制是否带区级:
JDCityPicker jdPicker = new JDCityPicker(); jdPicker.init(this); jdPicker.setConfig(new JDCityConfig.Builder().build());- 用自己的数据源:内置区划不满足业务时,用 CustomCityPicker 传自己的 CustomCityData 列表,滚轮里就只剩你的数据。
⚠️ CityPicker 避坑清单:4 个常见问题
- 首次打开卡顿:库在 init 时解析内置城市数据。选择器对象在 onCreate 里建一次、全页复用,别在点击事件里反复 new。
- 新合并的区县选不到:数据源是 2018 年 12 月行政区划,之后新设的区县不会更新。需要最新区划就用 CustomCityPicker 喂自己的数据。
- 混淆后 release 包崩溃:库内部有反射调用,ProGuard 必须加对应的 keep 规则,否则线上直接炸。
- 结果里混进港澳台:滚轮默认包含港澳台数据,业务不需要的地方加
.setShowGAT(false)就能隐藏。
📦 延伸资源:示例工程与源码位置
- 示例工程:
app模块,每种样式一个演示页,参数可实时调整 - 核心库源码:
citypickerview模块 - 内置城市数据文件:
citypickerview/src/main/assets/china_city_data.json - 项目说明与更新记录:
README.md
把滚轮搬进你自己的工程,地址选择这块就算齐活了。
【免费下载链接】citypickercitypicker城市选择器,详细的省市区地址信息,支持仿iOS滚轮实现,仿京东样式,一级或者三级列表展示方式。项目地址: https://gitcode.com/gh_mirrors/ci/citypicker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考