首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DatePickerDialog -按钮在哪里?

DatePickerDialog -按钮在哪里?
EN

Stack Overflow用户
提问于 2022-06-14 13:09:57
回答 1查看 58关注 0票数 0

我正在编写一个包含DatePickerDialog的应用程序,它不显示负/正按钮。

以下是标题和消息(它没有显示按钮)问题的一个演示:

屏幕720x1280 / xhdpi (错误:没有显示按钮)

这是生成选择器的代码:

代码语言:javascript
复制
        DatePickerDialog dpd = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Calendar c = Calendar.getInstance();
                c.set(Calendar.YEAR, year);
                c.set(Calendar.MONTH, month);
                c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                Log.i(TAG,"onDateSet");
                readingDateTv.setText(MainActivity.sdf.format(c.getTime()));
                readingDateTv.setBackgroundColor(Color.argb(0x80, 0xff, 0x99, 0x99));
                notifyListeners();
            }
        }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));

        dpd.setTitle("Reading");
        dpd.setMessage("Enter Reading Date");
        dpd.show();

这似乎是屏幕大小、DatePickerDialog布局,特别是message字段的一个问题。因此,一般的问题是:这是DatePickerDialog的错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 12:32:56

随着这个问题和调查的发展,很明显,这是DatePickerDialog的屏幕大小问题,特别是如何在布局中处理message字段。( message字段应该显示为字幕(字体比标题小,标题下面)。

我包括各种屏幕结果(来自模拟器)来演示这个问题。

屏幕720x1280 / xhdpi (错误:没有显示按钮)

这是生成选择器的代码:

代码语言:javascript
复制
        DatePickerDialog dpd = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                Calendar c = Calendar.getInstance();
                c.set(Calendar.YEAR, year);
                c.set(Calendar.MONTH, month);
                c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                Log.i(TAG,"onDateSet");
                readingDateTv.setText(MainActivity.sdf.format(c.getTime()));
                readingDateTv.setBackgroundColor(Color.argb(0x80, 0xff, 0x99, 0x99));
                notifyListeners();
            }
        }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));

        dpd.setTitle("Reading");
        dpd.setMessage("Enter Reading Date");
        dpd.show();

上面的图像来自一个模拟的Galaxy Nexus API 25 sw320dp。当我在模拟的Nexus 7 API 25 sw600dp上运行这个应用程序时,它看起来很好:

屏幕1200x1920 / xhdpi (正确)

然后,我创建了一个ldpi仿真器(120 of密度和240x400屏幕大小),以了解它如何处理屏幕大小和密度的极端低端。

结果如下所示,当没有为对话框定义message时,存在滚动条和按钮--但是当定义了message时,滚动条就存在,而没有按钮。

屏幕240x400 / mdpi

(左-无消息正确)(右-消息错误没有按钮)

因此,我的结论是,这是一个带有消息的小屏幕DatePickerDialog布局的错误。因此,对于我来说,解决方案是不使用message属性。

对于需要message并且需要处理小屏幕大小的情况,那么定制日期选择对话框的自定义布局可能是唯一的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72617568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档