/**
* 设置显示样式为Dialog,以此适配虚拟导航栏遮挡问题,并设置阴影样式
* (使用.setDecorView((ViewGroup)getWindow().getDecorView().findViewById(android.R.id.content))解决了遮挡的问题,但是状态栏却没有被阴影盖住)
*
* @param pvTime
* @return
*/
@nonnull
private static TimePickerView getTimePickerView(TimePickerBuilder pvTime) {
pvTime.isDialog(true);// 显示为对话框样式
TimePickerView pickerView = pvTime.build();
Dialog mDialog = pickerView.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;
pickerView.getDialogContainerLayout().setLayoutParams(params);
Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) {
dialogWindow.setWindowAnimations(R.style.picker_view_slide_anim);//修改动画样式
dialogWindow.setGravity(Gravity.BOTTOM);//改成Bottom,底部显示
dialogWindow.setDimAmount(0.3f);// 设置透明度
}
}
return pickerView;
}
通过上面方法将其设置为dialog样式,然后显示即可解决
TimePickerView pickerView = getTimePickerView(pvTime);
pickerView.show();