##(原作者saiwu-bigkoo吴哥已经转行了,他已把项目转交给我维护,所以我会继续更新优化,不能白白荒废了,欢迎Pull Request,提issue。有兴趣的小伙伴可以加入QQ群:387051294 讨论交流)
一款仿iOS的PickerView控件,有时间选择和选项选择,并支持一二三级联动,支持自定义样式
- 有时间和选项这两种选择器
- 选项选择器支持三级联动
- 时间选择器支持选择年份范围
- 支持“年,月,日,时,分,秒”,“省,市,区”等选项的单位(label)显示、隐藏和自定义。
- 支持自定义文字、颜色、文字大小等属性
- 支持背景颜色更换,有夜间模式需求的问题可以解决了
- Item的文字长度过长时,文字会自适应缩放到Item的长度,避免显示不完全的问题
——TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式
——OptionsPickerView 选项选择器,支持一,二,三级选项选择,并且可以设置是否联动
有兴趣研究3D滚轮效果的实现机制,希望把源码研究透彻的可以看看这篇Android-PickerView系列之源码解析篇(二)
- 修复timepicker只能在初始化时设置一次默认选中时间的问题
- 优化 起始终止年月日范围设置
- 新增自定义布局
- 新增对话框模式
- 新增timePicker “年月日时分”显示类型
- 新增分隔线的显示类型选择(FILL、WARP)
- 新增options默认选中项的调用方法(可重复设置);
- 优化选中项显示位置有微小偏差问题
compile 'com.contrarywind:Android-PickerView:3.0.8'
//compile 'com.bigkoo:pickerview:lunar.1.0' Lunar Branch 农历分支
OR
<dependency>
<groupId>com.contrarywind</groupId>
<artifactId>Android-PickerView</artifactId>
<version>3.0.8</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();
#License
Copyright 2014 Bigkoo
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.