多级地址选择器

该博客介绍了为解决多级地址选择而开发的一款小部件,具有动态tab切换功能,节省了维护时间。模块包括多级联动选择、数据源描述和选择完成回调接口等特性,适合快速集成到项目中。
摘要由CSDN通过智能技术生成

背景

我们有些场景会选择多级地址,tab也不固定,所以所以要花费很多时间去维护,所以我就开发一个小部件,更好的去让外部调用,

效果展示

模块介绍

  • 模块功能:多级联动选择器
集成步骤
1. 需要在项目build.gradle上添加maven仓库配置
    allprojects {
    repositories {
        maven {
            url 'http://192.168.13.232:8081/repository/maven-releases/'
        }
    }
}

2.在module上依赖"com.diyi.dyviewlib:viewLib:+"
例如:

implementation 'com.diyi.dyviewlib:viewLib:1.0.0-SNAPSHOT'
基本使用示例
                PickerDialog(this)
                .setTitle("这是选择标题")
                .setThemeTextColor(Color.GRAY)
                .setTabSelectTextColor(Color.BLACK)
                .setLevelSum(2)
                .setPickerData(data)
                .setPickerSelectListener(object : PickerSelectListener {
                    override fun onPickerSelected(vararg positions: Int) {
                        Log.e("setPickerSelectListener", "currentPosition:${positions[0]},${positions[1]}")
                    }
                })
                .build()
                .show()
详细描述

//设置标题

setTitle()

//设置主图文字颜色

setThemeTextColor()

//设置选中tab栏目文字颜色

setTabSelectTextColor()

必须调用-//设置多级tab的总级数量

setLevelSum()

//设置数据源

setPickerData()

必须调用-//构建方法

build()
数据源描述
  • PickerData接口
    • 描述:普通数据源,数据源必须实现此接口
    •  * 列表显示的内容
       */
      fun content(): String
      
      /**
       * 下一级数据 List<*> '*' 需实现 PickerData 接口
       */
      fun child(): List<*>?```
      
  • SectionPickerData接口
    • 描述:带分组功能的数据数据源
    •  * 按照此返回的结果排序
       */
      fun getSection(): String?
      
      /**
       * 返回content的拼音
       */
      fun getPinyin(): String?```
      
      
选择完成回调接口
interface PickerSelectListener {
    /**
     * 根据用户设置的sum返回相应长度的数组
     * 例如:sum=2,第2级别选中项目:positions[0],第2级别选中项目:positions[1],
     */
    fun onPickerSelected(vararg positions:Int)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值