背景
我们有些场景会选择多级地址,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)
}