Android TeaPickerView数据级联选择器
Github地址
YangsBryant/TeaPickerView
(Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!)
引入module
allprojects {repositories {google()jcenter()maven { url 'https://www.jitpack.io' }}
}
implementation 'com.github.YangsBryant:TeaPickerView:1.0.2'
主要代码
public class MainActivity extends AppCompatActivity {@BindView(R.id.mButton)Button button;List<String> mProvinceDatas=new ArrayList<>();Map<String, List<String>> mSecondDatas= new HashMap<>();Map<String, List<String>> mThirdDatas= new HashMap<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.bind( this );intiPickerView();}private void intiPickerView(){//一级列表ProvinceBean provinceBean = new ProvinceBean();mProvinceDatas.addAll(provinceBean.getRepData().getProvince());//二级列表SecondBean secondBean = new SecondBean();mSecondDatas.putAll(secondBean.getRepData().getSecond());//三级列表ThirdBean thirdBean = new ThirdBean();mThirdDatas.putAll(thirdBean.getRepData().getThird());Log.i("json", JsonArrayUtil.toJson(mProvinceDatas));Log.i("json",JsonArrayUtil.toJson(mSecondDatas));Log.i("json",JsonArrayUtil.toJson(mThirdDatas));//设置数据有多少层级PickerData data=new PickerData();data.setFirstDatas(mProvinceDatas);//json: ["广东","江西"]data.setSecondDatas(mSecondDatas);//json: {"江西":["南昌","赣州"],"广东":["广州","深圳","佛山","东莞"]}data.setThirdDatas(mThirdDatas);//json: {"广州":["天河区","白云区","番禹区","花都区"],"赣州":["章贡区","黄金开发区"],"东莞":["东城","南城"],"深圳":["南山区","宝安区","龙华区"],"佛山":["禅城区","顺德区"],"南昌":["东湖区","青云谱区","青山湖区"]}data.setInitSelectText("请选择");TeaPickerView teaPickerView =new TeaPickerView(this,data);teaPickerView.setScreenH(3).setDiscolourHook(true).setRadius(25).setContentLine(true).setRadius(25).build();button.setOnClickListener(v -> {//显示选择器teaPickerView.show(button);});//选择器点击事件teaPickerView.setOnPickerClickListener(pickerData -> {Toast.makeText(MainActivity.this,pickerData.getFirstText()+","+pickerData.getSecondText()+","+pickerData.getThirdText(),Toast.LENGTH_SHORT).show();teaPickerView.dismiss();//关闭选择器});}
}
TeaPickerView属性大全
方法名 |
属性 |
setHeights(int mHeight) |
显示具体的高度(dp),设置0是自适应(高度没有默认值,需要主动设置) |
setScreenH(int num) | 显示的高度占屏幕的百分比 |
setBackground(int color) | 设置整体的背景颜色 默认是#ffffff |
setRadius(int mRadius) | 设置圆角,默认0 |
setContentBackground(int color) | 内容栏的背景颜色 默认是#ffffff |
setContentHeight(int mHeight) | 内容栏的高度(dp) 默认是50dp |
setContentText(int size,int color) | 内容栏字体的大小和颜色, 默认是16sp,#0aa666,用此方法会固定颜色 |
setContentText(ColorStateList drawable) | 自定义内容栏字体颜色变换器 在res目录下创建color文件夹用selector 默认颜色#555 选中颜色#0aa666 |
setContentLine(boolean bl) | 内容栏选中是否有下划线 默认不开启 |
setContentLineColor(Drawable drawable) | 自定义内容栏下划线用layer-list 默认是下边框描边 颜色#0fbc72 高度1dp |
setLine(int mHeight,int color) | 分割线的高度和颜色 默认是0.5dp #e5e5e5 |
setitemHeight(int mHeight) | 设置list的item的高度(dp) 默认是40dp |
setListText(int size,int color) | 设置list的字体大小和颜色 默认是15 #555 |
setScrollBal(boolean bl) | 设置list是否显示滚动条,默认false |
setAlpha(float mFloat) | 设置阴影层的透明度 默认是0.5f |
setDiscolour(boolean bl) | 设置选中项是否加色,默认true |
setDiscolourColor(int color) | 设置选中项加色的颜色值,默认#0aa666 |
setDiscolourHook(boolean bl) | 设置选中项是否有√图标,默认false |
setCustomHook(Drawable drawable) | 自定义√图标 |
build() | 参数设置完毕,一定要build一下 |
设置数据
方法名 | 属性 |
setInitSelectText(String firstText) | 初始文字 |
setFirstDatas(List mFirstDatas) | 设置一级数据 |
setSecondDatas(Map<String, List> mSecondDatas) | 设置二级数据 |
setThirdDatas(Map<String, List> mThirdDatas) | 设置三级数据 |
setFourthDatas(Map<String, List> mFourthDatas) | 设置四级数据 |
给出参考bean地址
一级ProvinceBean 二级SecondBean 三级ThirdBean
默认内容栏字体颜色变换器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_selected="true" android:color="@color/picker_select_text_color"/><item android:state_pressed="true" android:color="@color/picker_select_text_color"/><item android:state_checked="true" android:color="@color/picker_select_text_color"/><item android:state_focused="true" android:color="@color/picker_select_text_color"/><item android:color="@color/picker_text_color"/>
</selector>
默认内容栏下划线
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 边框颜色值 --><item><shape><solid android:color="@color/station_average" /></shape></item><item android:bottom="1dp"> <!--设置只有底部有边框--><shape><solid android:color="#ffffff" /></shape></item>
</layer-list>
无力吐槽,博客园的富文本编辑器真难用
转载于:https://www.cnblogs.com/94xiyang/p/10977826.html
Android TeaPickerView数据级联选择器相关推荐
- element ui 级联选择器,渲染后不显示数据
element ui 的级联选择器只能用 value label 来渲染,而往往后端发给我们的数据并不是按照这个来命名的,所以element ui给我们提供了Props来进行配置 但鉴于本人水平有限, ...
- 级联选择器el-cascader处理复杂数据(四层、五层数据),回显部门以及部门下的人员
注意:参考第五层的数据处理比较nice 当级联选择器需要绑定的数组不再是简易数据,props涉及的字段不再是一个,而是列表里面套列表 比如,我想要获取部门以及下面的员工,如何显示?如下图1所示,后端返 ...
- Cascader 级联选择器如何根据给定的叶节点值设置默认值(数据回显)
转载自:Cascader 级联选择器如何设置默认值(数据回显)_༺举个栗子吧༻的博客-CSDN博客_选择器设置默认值 官网cascader:https://element.eleme.cn/#/zh- ...
- vue中级联选择器回填_浅谈Vue使用Cascader级联选择器数据回显中的坑
业务场景 由于项目需求,需要对相关类目进行多选,类目数据量又特别大,业务逻辑是使用懒加载方式加载各级类目数据,编辑时回显用户选择的类目. 问题描述 使用Cascader级联选择器过程中主要存在的应用问 ...
- 关于级联选择器Cascader数据太多会改变列表大小的问题
1.打开后台控制台中的---元素栏,通过做左侧的标志找到级联选择器的部分 2.然后你在筛选器--element-style{}中输入 max-height:400px(你自己觉得最合适的高度)看看页面 ...
- 011_Cascader级联选择器
1. Cascader级联选择器 1.1. 当一个数据集合有清晰的层级结构时, 可通过级联选择器逐级查看并选择. 1.2. Cascader属性 参数 说明 类型 可选值 默认值 value / v- ...
- Cascader 级联选择器
当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择. 基础用法 有两种触发子菜单的方式 只需为 Cascader 的options属性指定选项数组即可渲染出一个级联选择器. 通过expa ...
- vue利用级联选择器实现全国省市区乡村五级菜单联动
" 大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂. " 现在是:2022年2月13日20:09:27 今天分享一个五级级联地址的组件的使用吧. 前言 接到这样的一个需求:需要 ...
- 前端学习(2002)vue之电商管理系统电商系统之绘制商品分类的级联选择器
目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...
- vue element-ui级联选择器选中后下拉框自动收起
Cascader 级联选择器 数据渲染 通过 :options="options" 映射,让每一级都可以选择(选项前会有圆圈可勾选)设置属性 :props="{ chec ...
最新文章
- 关于“INS-40922 Invalid Scan Name – Unresolvable to IP address”
- 平台战初现 产品从单个智能走向互联
- 使用react、antd组件报错TypeError: _this.formRef.current.validateFields is not a function
- MySQL运算符,SQL,算术比较逻辑位,优先级,正则表达式,完整详细可收藏
- 创建动态链接库时设置导出函数的方法
- Oracle(四)多表查询
- TraceEventsDB event(跟踪事件)总结
- sqlserver操作符篇 优化
- Django-admin源码流程
- 30 张快速学习 Java 的思维导图
- python最简单的画图代码
- 可启动 ISO 合并、Windows 安装光盘合集
- Wechart 饼图
- 计算机二级保存错地方,盘点考计算机二级那些容易出错的地方
- 鼠标移上提示框 提示框不消失
- TSP问题—Hopfield神经网络算法实现
- IOTOS通采盒为BIM运维、GIS、CIM、数字孪生及IBMS高效率、低成本打通数据,接入楼宇园区子系统设备
- Matlab 动态输入变量和嵌套函数、匿名函数
- 关于504报错的解决方法之一
- 永久激活Windows7-最新版本RemoveWAT2.2.6
热门文章
- qpython能使用json吗l_现在还能使用土墙吗?
- 安装VMware时提示无效驱动器:D:\的解决办法
- linux实验项目,实验--项目2_Linux基本命令
- len函数实例python_Python通过len函数返回对象长度
- mock模拟接口测试_Python接口测试之mock(上)
- 用关键字搜索c语言,c语言-以关键字搜索程序
- java 约瑟夫环_java中约瑟夫环代码实现
- php mysql数据库同步_教你怎样在两台MySQL数据库间实现同步
- [codeblocks下实现多个源文件2.0]类声明和成员函数定义的分离实战操作实现
- python机器学习乳腺癌细胞模型