有很多大佬搞的选择器只是当前功能适用,我这里遇到调用第三方sdk覆盖了当前功能,dialog默认优先级不高的情况下会被覆盖,这里增加了
dialogWindow.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//设置弹框显示最顶层
最后问题解决.
1.引入
implementation 'com.contrarywind:Android-PickerView:4.1.9'
2.初始化
private TimePickerView pvTime;
private void initTimePicker() {
pvTime = new TimePickerBuilder(this, new OnTimeSelectListener() {
@Override
public void onTimeSelect(Date date, View v) {
ToastUtils.showToast(Main.this, "获取时间"+date);
}
})
.setTimeSelectChangeListener(new OnTimeSelectChangeListener() {
@Override
public void onTimeSelectChanged(Date date) {
}
})
.setType(new boolean[]{true, true, true, true, true, false})
.isDialog(true)
.build();
Dialog mDialog = pvTime.getDialog();
if (mDialog != null) {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM);
params.leftMargin = 0;
params.rightMargin = 0;
pvTime.getDialogContainerLayout().setLayoutParams(params);
Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) {
dialogWindow.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//设置弹框显示最顶层
dialogWindow.setWindowAnimations(com.bigkoo.pickerview.R.style.picker_view_slide_anim);//修改动画样式
dialogWindow.setGravity(Gravity.BOTTOM);//改成Bottom,底部显示
}
}
}
3.显示
pvTime.show();