CascadePickerView

级联选择组件,包括基础组件城市选择组件

目前公开的记录组件基本都有限制,限制选择级别,如很多城市组件只能选择三级:省、市、县
本组件不限制级别,可无极显示,只要按照要求组织数据即可

引用方式

    implementation 'space.tanghy:cascade:0.0.4'

基础级联组件 CascadePickerView

组件提供级别可根据需求设置显示级别

 setLevel()

组件默认到最后一级关闭级联选择框,可通过设置属性不关闭

lastItemCloseDialog = false

数据格式

[

  {
    "value": "11",
    "name": "北京市",
    "children": [{
      "value": "1101",
      "name": "朝阳",
      "children": [

      ]
    }]
  }
]

children属性可无限添加下去

setData

组织好数据可通过setData方法设置数据

val dialog = CascadePickerView(
    this,
    mutableListOf(
        Item(
            "北京", "北京", mutableListOf(
                Item("朝阳区", "朝阳区"),
                Item("东城区", "东城区"),
                Item("西城区", "西城区"),
            )
        ),
        Item("天津市", "天津市"),
        Item("河北省", "河北省"),
        Item("山西省", "山西省"),
        Item("内蒙古", "内蒙古"),
        Item("辽宁省", "辽宁省"),
        Item("吉林省", "吉林省"),
        Item("黑龙江省", "黑龙江省"),
        Item("上海市", "上海市"),
    )
)
// 或者使用JSON字符串进行设置数据
dialog.setData("[\n" +
        "  {\n" +
        "    \"value\": \"1401\",\n" +
        "    \"name\": \"太原市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1402\",\n" +
        "    \"name\": \"大同市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1403\",\n" +
        "    \"name\": \"阳泉市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1404\",\n" +
        "    \"name\": \"长治市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1405\",\n" +
        "    \"name\": \"晋城市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1406\",\n" +
        "    \"name\": \"朔州市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1407\",\n" +
        "    \"name\": \"晋中市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1408\",\n" +
        "    \"name\": \"运城市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1409\",\n" +
        "    \"name\": \"忻州市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1410\",\n" +
        "    \"name\": \"临汾市\"\n" +
        "  },\n" +
        "  {\n" +
        "    \"value\": \"1411\",\n" +
        "    \"name\": \"吕梁市\"\n" +
        "  }\n" +
        "]")

searchChildren 动态指定数据源

该方法返回的数据需要跟框架指定的格式一致,数据将动态赋给下一级节点

城市选择器组件 CityPickerView

行政区划数据是国家统计局发布的区划数据2021版,区划数据需要解析下载后续将更新区划升级api
国家统计局区划地址:http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html
行政区划数据量:61万多

城市级别

  • 省级
  • 市级
  • 县级
  • 乡镇级
  • 村级

实例

    val dialog = CityPickerView(this)
    dialog.lastItemCloseDialog = false
    dialog.show()

在这里插入图片描述
在这里插入图片描述

0.0.4版本

  • 修复bug,选中一个区划时,滑动列表中有多个选中。

0.0.3版本

  • 更新行政区划数据到村(后续可能考虑删除,村一级数据过大导致打包、上传或者使用都不方便)
  • 更新级联选择组件可传入json字符串为数据
  • 区划数据已经拆分,有需要原数据的可以留言。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐