##(原作者saiwu-bigkoo吴哥已经转行了,他已把项目转交给我维护,所以我会继续更新优化,不能白白荒废了,欢迎Pull Request,提issue。有兴趣的小伙伴可以加入QQ群:387051294 讨论交流)
一款仿iOS的PickerView控件,有时间选择和选项选择,并支持一二三级联动,支持自定义样式
- 有时间和选项这两种选择器
- 选项选择器支持三级联动
- 时间选择器支持选择年份范围
- 支持“年,月,日,时,分,秒”,“省,市,区”等选项的单位(label)显示、隐藏和自定义。
- 支持自定义文字、颜色、文字大小等属性
- 支持背景颜色更换,有夜间模式需求的问题可以解决了
- Item的文字长度过长时,文字会自适应缩放到Item的长度,避免显示不完全的问题
——TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式
——OptionsPickerView 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动
有兴趣研究3D滚轮效果的实现机制,希望把源码研究透彻的可以看看这篇Android-PickerView系列之源码解析篇(二)
- 优化 起始终止年月日范围设置
- 新增自定义布局
- 新增对话框模式
- 新增timePicker “年月日时分”显示类型
- 新增分隔线的显示类型选择(FILL、WARP)
- 新增options默认选中项的调用方法(可重复设置);
- 优化选中项显示位置有微小偏差问题
compile 'com.contrarywind:Android-PickerView:3.0.7'
//compile 'com.bigkoo:pickerview:lunar.1.0' Lunar Branch 农历分支
OR
<dependency>
<groupId>com.contrarywind</groupId>
<artifactId>Android-PickerView</artifactId>
<version>3.0.7</version>
<type>pom</type>
</dependency>
//TimePicker
pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date,View v) {//选中事件回调
tvTime.setText(getTime(date));
}
})
.build();
pvTime.show();
//OptionsPicker
pvOptions = new OptionsPickerView.Builder(this, new OptionsPickerView.OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int option2, int options3 ,View v) {
//返回的分别是三个级别的选中位置
String tx = options1Items.get(options1).getPickerViewText()
+ options2Items.get(options1).get(option2)
+ options3Items.get(options1).get(option2).get(options3).getPickerViewText();
tvOptions.setText(tx);
}
}).build();
pvOptions.setPicker(options1Items, options2Items, options3Items);
pvOptions.show();