PickerView
阅读数:343 评论数:0 字数统计:368 阅读时长 ≈ 1分钟under Android tag Published on April 19th , 2021 at 02:28 pm
PickerView 是一款仿 iOS 控件,有时间选择器和条件选择器。
- TimePickerView 时间选择器,支持年月日时分,年月日,年月,时分等格式。
- OptionsPickerView 条件选择器,支持一,二,三级选项选择,并且可以设置是否联动。
项目地址
使用
1. 添加 Gradle依赖:根据项目版本更新说明修改版本号
implementation 'com.contrarywind:Android-PickerView:4.1.9'
2. 直接在代码中声明使用
- 时间选择器
代码中未设置时间,默认为系统时间。
private TimePickerView timePickerView;
timePickerView = new TimePickerBuilder(MainActivity.this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
String time = sdf.format(date);
tv.setText(time);
}
})
.build();
timePickerView.show();
- 条件选择器
private OptionsPickerView optionsPickerView;
List<String> strings = new ArrayList<>();
strings.add("北京");
strings.add("杭州");
strings.add("上海");
optionsPickerView = new OptionsPickerBuilder(MainActivity.this, new OnOptionsSelectListener() {
@Override
public void onOptionsSelect(int options1, int options2, int options3, View v) {
tv2.setText(strings.get(options1));
}
}).build();
optionsPickerView.setPicker(strings);
optionsPickerView.show();
按钮样式可以自定义!
setLayoutRes() 第一个参数需要的是布局文件
注意:
1、自定义布局中,id为 optionspicker 或者 timepicker 的布局以及其子控件必须要有,否则会报空指针
2、要重新设置监听事件
timePickerView = new TimePickerBuilder(MainActivity.this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA);
String time = sdf.format(date);
tv.setText(time);
}
})
.setLayoutRes(R.layout.pickerview_time, new CustomListener() {
@Override
public void customLayout(View v) {
RelativeLayout rv_topbar = v.findViewById(R.id.rv_topbar);
Button btnCancel = v.findViewById(R.id.btnCancel);
Button btnSubmit = v.findViewById(R.id.btnSubmit);
rv_topbar.setBackgroundColor(Color.WHITE);
btnCancel.setBackgroundColor(Color.WHITE);
btnCancel.setTextColor(Color.BLACK);
btnSubmit.setBackgroundColor(Color.WHITE);
btnSubmit.setTextColor(Color.BLACK);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timePickerView.dismiss();
}
});
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timePickerView.returnData();
timePickerView.dismiss();
}
});
}
})
.build();
timePickerView.show();
部分方法名与参数说明
.setOutSideCancelable(boolean cancelable) // 点击 View 外部 View 消失,默认为 true
.setDividerType(WheelView.DividerType dividerType) // 设置分割线类型。FILL, WRAP, CIRCLE(一条直线,好几条短线,一个圈)
.setDividerColor(@ColorInt int dividerColor) // 设置分割线颜色
.isDialog(boolean isDialog) // 以弹窗形式居于屏幕中间显示,默认为 false
.show(View v) // 用于显示选择器,其中 v 会传到回调方法中
.isCenterLabel(boolean isCenterLabel) // 是否只显示中间选中项的 label 文字,false 则每项 item 全部都带有 label,label 是日期后面的年月日等等,默认为 false(效果图上的样子)
.setBackgroundId(int backgroundId) // 设置遮罩背景颜色。试了一下白色,没有用,设置其他颜色太难看了
本文由 surface 创作,采用 知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
文章最后更新时间为:October 15th , 2021 at 05:39 pm
分享到:Twitter Weibo Facebook