dialog模式下,无法设置dialog的宽度,在大屏上展示效果不佳
Dialog mDialog = timePickerView.getDialog(); if (mDialog != null) {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.CENTER);
params.width = dialogWidth;//修改选择器弹框的宽度
params.leftMargin = 0;
params.rightMargin = 0;
timePickerView.getDialogContainerLayout().setLayoutParams(params);
Window dialogWindow = mDialog.getWindow();
if (dialogWindow != null) {
dialogWindow.setWindowAnimations(com.bigkoo.pickerview.R.style.picker_view_slide_anim);//修改动画样式
dialogWindow.setGravity(dialogGravity);//改成Bottom,中间显示
}
}
@Jerry930326 我用你的方式 并没有修改成功 val pickerOptions = PickerOptions(PickerOptions.TYPE_PICKER_TIME) pickerOptions.context = activity pickerOptions.type = booleanArrayOf(false, false, false, true, true, false) pickerOptions.textContentCancel = "取消" pickerOptions.textContentConfirm = "确认" pickerOptions.cancelable = false pickerOptions.isCenterLabel = true pickerOptions.textSizeContent = 16 pickerOptions.textSizeTitle = 16 pickerOptions.isDialog = true pickerOptions.label_year = "年" pickerOptions.label_month = "月" pickerOptions.label_day = "日" pickerOptions.label_hours = "时" pickerOptions.label_minutes = "分" pickerOptions.label_seconds = "秒" pickerOptions.timeSelectListener = OnTimeSelectListener { date, _ ->
}
val pickerView = TimePickerView(pickerOptions)
changeWidth(pickerView)
pickerView.show()
private fun changeWidth(build: TimePickerView) {
val mDialog = build.dialog
if (mDialog != null) {
val params = FrameLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, WRAP_CONTENT, Gravity.BOTTOM)
params.leftMargin = 200
params.rightMargin = 200
build.dialogContainerLayout.layoutParams = params
val dialogWindow = mDialog.window
if (dialogWindow != null) {
dialogWindow.setWindowAnimations(com.bigkoo.pickerview.R.style.picker_view_slide_anim)
dialogWindow.setGravity(Gravity.BOTTOM)
}
}
}