Android笔记
——PickerView
【若对该知识点有更多想了解的,欢迎私信博主~~】
依赖框架:PickerView
一:优势及作用
- 支持三级联动
- 设置是否联动
- 设置循环模式
- 支持自定义布局。
- 支持item的分隔线设置。
- 支持item间距设置。
- 时间选择器支持起始和终止日期设定。
- 支持“年,月,日,时,分,秒”,“省,市,区”等选项的单位(label)显示、隐藏和自定义
- 支持自定义文字、颜色、文字大小等属性
- Item的文字长度过长时,文字会自适应缩放到Item的长度,避免显示不完全的问题
- 支持Dialog 模式
- 支持自定义设置容器
- 实时回调
二:GreenDao的配置
-
分build.gradle中添加(注入依赖)
dependencies { implementation 'com.contrarywind:Android-PickerView:4.1.7' }
三:使用
-
时间选择器 TimePickerView
Calendar selectedDate = Calendar.getInstance(); Calendar startDate = Calendar.getInstance(); Calendar endDate = Calendar.getInstance(); startDate.set(2013,0,1); endDate.set(2020,11,31); TimePickerView tpv=new TimePickerBuilder(MainActivity.this, new OnTimeSelectListener() { @Override public void onTimeSelect(Date date, View v) { Toast.makeText(MainActivity.this, "time:"+format.format(date), Toast.LENGTH_SHORT).show(); } }) .setType(new boolean[]{true, true, true, true, true, true})// 默认全部显示 .setCancelText("取消")//取消按钮文字 .setSubmitText("确认")//确认按钮文字 .setContentTextSize(18)//滚轮文字大小 .setTitleSize(20)//标题文字大小 .setTitleText("时间选择")//标题文字 .setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示 .isCyclic(false)//是否循环滚动 .setTitleColor(Color.GREEN)//标题文字颜色 .setSubmitColor(Color.BLUE)//确定按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色 .setTitleBgColor(Color.YELLOW)//标题背景颜色 Night mode .setBgColor(Color.RED)//滚轮背景颜色 Night mode .setDate(selectedDate)// 如果不设置的话,默认是系统时间*/ .setRangDate(startDate,endDate)//起始终止年月日设定 .setLabel("年","月","日","时","分","秒")//默认设置为年月日时分秒 .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 .isDialog(false)//是否显示为对话框样式 .build(); tpv.show();
-
条件选择器 OptionsPickerView
//创造数据 final List<String> options1Items=new ArrayList<>(); final List<List<String>> options2Items=new ArrayList<>(); final List<List<List<String>>> options3Items=new ArrayList<>(); for (int i = 0; i < 5; i++) { options1Items.add("一级菜单"+i); List<String> list1=new ArrayList<>(); List<List<String>> list2=new ArrayList<>(); for (int j = 0; j < 5; j++) { list1.add(i+"-"+j); List<String> list3=new ArrayList<>(); for (int k = 0; k < 5; k++) { list3.add(i+"-"+j+"-"+k); } list2.add(list3); } options2Items.add(list1); options3Items.add(list2); } OptionsPickerView opv = new OptionsPickerBuilder(MainActivity.this, new OnOptionsSelectListener() { @Override public void onOptionsSelect(int options1, int options2, int options3, View v) { //返回的分别是三个级别的选中位置 String tx = options1Items.get(options1) + options2Items.get(options1).get(options2) + options3Items.get(options1).get(options2).get(options3); Toast.makeText(MainActivity.this, tx, Toast.LENGTH_SHORT).show(); } }) .setSubmitText("确定")//确定按钮文字 .setCancelText("取消")//取消按钮文字 .setTitleText("城市选择")//标题 .setSubCalSize(18)//确定和取消文字大小 .setTitleSize(20)//标题文字大小 .setTitleColor(Color.BLACK)//标题文字颜色 .setSubmitColor(Color.BLUE)//确定按钮文字颜色 .setCancelColor(Color.BLUE)//取消按钮文字颜色 .setTitleBgColor(0xFF333333)//标题背景颜色 Night mode .setBgColor(0xFF000000)//滚轮背景颜色 Night mode .setContentTextSize(18)//滚轮文字大小 .setLabels("省", "市", "区")//设置选择的三级单位 .isCenterLabel(false) //是否只显示中间选中项的label文字,false则每项item全部都带有label。 .setCyclic(false, false, false)//循环与否 .setSelectOptions(1, 1, 1) //设置默认选中项 .setOutSideCancelable(false)//点击外部dismiss default true .isDialog(true)//是否显示为对话框样式 .isRestoreItem(true)//切换时是否还原,设置默认选中第一项。 .build(); opv.setPicker(options1Items,options2Items,options3Items); opv.show();
官方文档
- https://github.com/Bigkoo/Android-PickerView