如何修复在较小屏幕中被截断的选择器对话框?

Posted

技术标签:

【中文标题】如何修复在较小屏幕中被截断的选择器对话框?【英文标题】:How to fix picker dialog that is cutoff in smaller screens? 【发布时间】:2020-09-23 01:00:00 【问题描述】:

android应用程序中,我使用了TimePickerDialogDatePickerDialog。我想在所有不同的屏幕尺寸上开发这个应用程序。

问题是,此对话框大小在所有屏幕尺寸上都是相同的。对话框不会随着屏幕大小的变化而调整其大小。因此,在较小的屏幕上,对话框的内容被截断。

如何调整此对话框?

下面是我在不同尺寸设备中得到的输出。我什至无法在此对话框中滚动

App output1

App output2

DatePickerdialog 代码:

 DatePickerDialog datePicker;

 editText_date.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            datePicker = new DatePickerDialog(mActivity,new DatePickerDialog.OnDateSetListener() 

                @Override
                public void onDateSet(DatePicker view, int y, int m, int d)                
                 //other code here
                
            ,yy,mm,dd);

         //allow only future dates
            datePicker.getDatePicker().setMinDate(System.currentTimeMillis());
            datePicker.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
            datePicker.show();
        
    );

【问题讨论】:

可以添加丢失内容的图片吗?你也可以分享你的代码吗? 我已经添加了代码。请检查一下 【参考方案1】:

您可以使用这些代码块。如果你会收到错误,你可以写。

    private void dialogDatePickerLight() 
    Calendar cur_calender = Calendar.getInstance();
    DatePickerDialog datePicker = DatePickerDialog.newInstance(
            new DatePickerDialog.OnDateSetListener() 
                @Override
                public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) 
                    Calendar calendar = Calendar.getInstance();
                    calendar.set(Calendar.YEAR, year);
                    calendar.set(Calendar.MONTH, monthOfYear);
                    calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                    long date_ship_millis = calendar.getTimeInMillis();

                
            ,

            cur_calender.get(Calendar.YEAR),
            cur_calender.get(Calendar.MONTH),
            cur_calender.get(Calendar.DAY_OF_MONTH)
    );

    datePicker.setThemeDark(false);
    datePicker.setAccentColor(getResources().getColor(R.color.cyan_800_overlay));
    datePicker.setMinDate(cur_calender);
    datePicker.show(getFragmentManager(), "Title is here");


【讨论】:

datePicker.setThemeDark() 方法不可用 @bhumivaghasiya 设备屏幕尺寸非常小。如果上面的代码没有为您响应,您可以将此答案用于您的设备。 ***.com/a/28291780/8738452 这不是我的问题的解决方案。

以上是关于如何修复在较小屏幕中被截断的选择器对话框?的主要内容,如果未能解决你的问题,请参考以下文章

如何在日期时间选择器对话框中更改天数的文本大小?

Google翻译下拉窗口不会在较小的屏幕上重新调整大小

如何打开启动器的小部件选择器?

简单的 Android 目录选择器 - 如何?

您如何根据偏好创建开始时间和结束时间选择器?

剑道列过滤器内的角度材料日期选择器问题