Android WheelView实现PackView风格三级城市联动菜单
Android 里的 Wheel Control 的三级城市选择菜单,挺适合做那种底部弹出的省市区联动。UI 风格有点像 iPhone 的 PackView,滑动选择那种,手感还不错。这个控件主要靠的是三个WheelView组合搞定联动——省、城市、区县各一个。只要把数据源搞清楚,再加上监听器联动,逻辑其实挺顺的。
布局方面,直接在 XML 里放上三个WheelView
,按比例分一下宽度就行。颜色、文字样式这些也能自己调,UI 定制空间还挺大的。
数据初始化那块,可以先填好省份,等你选择了省份,再动态更新城市和区县。省市区这套联动,比较依赖setOnItemSelectedListener()
和setAdapter()
,事件监听要写清楚,不然切换的时候容易出 Bug。
说白了,就是每一级选中之后,要根据这个值更新下一级的数据。比如选了“广东”,城市 WheelView 就要变成“广州、深圳、佛山”这些;你选了“广州”,区县就切成“天河、越秀”那些。
核心方法无非几个:setCurrentItem()
让 Wheel 滑到指定项,setAdapter()
绑数据,setOnItemSelectedListener()
联动。数据你可以本地写死,也可以从服务器拉,前提是格式要清晰。
项目源码在一个叫PopTest
的包里,里面布局、逻辑都有,导进 Android Studio 就能跑。如果你项目里要做城市选择,或者那种多级联动的弹出菜单,这套方案蛮适合用的。
还有,如果你想参考不同做法,可以看看这几个文章:
如果你在做一个带城市选择的 APP,比如注册、地址填写、物流下单这些模块,搞个像 PackView 那样滑动选择的底部弹窗,还挺加分的。
PopTest.rar
预估大小:89个文件
PopTest
文件夹
.project
843B
project.properties
563B
src
文件夹
kankan
文件夹
wheel
文件夹
widget
文件夹
WheelRecycle.java
3KB
WheelView.java
23KB
adapters
文件夹
...
1.1MB
文件大小:
评论区