Android-推荐一个仿美团大众点评城市选择库CityPicker

在最近的需求开发当中,我们产品经理说需要增加一个类似于美团或者大众点评城市选择界面。我当时就在想有没有办法快速实现,在不搞太多自己公司App的特色元素的时候,是有这样的库的,这篇文章的主角CityPicker库。分享这个库给大家,希望能提高大家的开发效率。

CityPicker

CityPicker库文档,感兴趣的小伙伴可以去看看详情文档。这个库需要我们自己集成地图SDK,你可以设置地图上面的当前定位城市。

简单的代码示例

1.我是通过高德地图获取当前定位城市,设置定位城市到控件里面,提高给大家参考:

// 城市的Code
private var mAdCode:String = ""
// 城市名称
private var mCity:String = ""


private fun setCity() {
        val mLocationClient = AMapLocationClient(this)
        val mLocationOption = AMapLocationClientOption()
        //高精度模式
        mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy
        //定位请求超时时间
        mLocationOption.httpTimeOut = 50000
        // 关闭缓存机制
        mLocationOption.isLocationCacheEnable = false
        // 设置是否只定位一次
        mLocationOption.isOnceLocation = true
        //设置参数
        mLocationClient.setLocationOption(mLocationOption)
        // 启动定位
        mLocationClient.startLocation()
        //定位监听
        mLocationClient.setLocationListener { aMapLocation ->
            //定位成功之后取消定位
            mLocationClient.stopLocation()
            if (aMapLocation != null && aMapLocation.errorCode == 0) {
                binding.cityText.text = aMapLocation.city
                mAdCode = aMapLocation.cityCode
                mCity = aMapLocation.city
                mProvince = aMapLocation.province
                // 设置高德地图城市数据到控件里面
                CityPicker.setGpsCityByAMap(mCity,mAdCode)
            } else {
                ToastUtils.show("定位失败,请重新定位")
            }
        }

2.调用CityPicker控件,注意我的热门城市是设置了广州、深圳、东莞:

// 设置定位城市
CityPicker.setGpsCityByAMap(mCity,mAdCode)
// 打开城市选择界面
CityPicker.with(this)
    .setMaxHistory(0)
    .setHotCitiesId("224","107","86")
    .setOnCityPickerCallBack {
       // 选择城市的回调             
    }
    .open()
大概的使用代码就这些,如果要深入自定义业务相关的元素,我个人建议还是在这个基础上面修改就好了。

原创文章,作者:首晒网,如若转载,请注明出处:https://www.shoushai.com/p/16

(0)
上一篇 2024年 4月 4日 上午12:14
下一篇 2024年 4月 4日 下午9:28

发表回复

登录后才能评论