Codenameone 修复一个轻量级日期选择器的代码名外观

Codenameone 修复一个轻量级日期选择器的代码名外观,codenameone,Codenameone,同一个代码名One lightweight picker以以下两种方式出现(区别是Android上的“01/01/00”和iPhone上的“01/01/2000”) Android iPhone 我需要解决两个关于外观的问题。第一个是日期:“01/01/00”不好,“01/01/2000”更好,“1 gennaio 2000”(意大利语本地化)是我在两个操作系统上更喜欢的 第二个是选择器的内部布局:在iPhone屏幕截图上,您可以看到日期选择器没有居中,而是在左侧对齐。如果它在两个操作系统的

同一个代码名One lightweight picker以以下两种方式出现(区别是Android上的“01/01/00”和iPhone上的“01/01/2000”)

Android

iPhone

我需要解决两个关于外观的问题。第一个是日期:“01/01/00”不好,“01/01/2000”更好,“1 gennaio 2000”(意大利语本地化)是我在两个操作系统上更喜欢的


第二个是选择器的内部布局:在iPhone屏幕截图上,您可以看到日期选择器没有居中,而是在左侧对齐。如果它在两个操作系统的中心对齐,效果会更好。Android上也存在同样的问题,但不太明显(在本例中)。

可以使用以下方式自定义日期格式:

 picker.setFormatter(mySimpleDateFormat);
这应该允许您显式定义格式。默认设置是使用设备设置,以解释它们之间的差异

请注意,您应该使用
com.codename1.l10n.SimpleDateFormat
而不是
java.text
版本


关于定心,我不确定是否可能。这对iOS中的本机选择器来说也是一个难题。您可以就此提交RFE,我们可以试一试。

为了最大限度地实现定制,可能还有如下机会:

Picker value = new Picker() {
    @Override
    protected void updateValue() {
        if (getDate() == null) {
            setText(" ");
            return;
        }
        setText(L10NManager.getInstance().formatDateLongStyle(getDate()));
    }
};

请不要添加屏幕截图。在这里添加代码。这将有助于其他人进行调试并提供答案。您是否因此而否决了投票?对于两个截图来说,Codename One轻量级选取器的代码都很简单,这就是为什么我没有添加它的原因。它类似于:
Picker-datePicker=new-Picker();datePicker.setType(显示.PICKER\u TYPE\u日期);datePicker.setUseLightweightPopup(true)您正在使用本地化管理器吗?SimpleDataFormat SimpleDataFormat=新SimpleDataFormat(“dd/MM/yyyy”);String dateString=SimpleDataFormat.format(新日期());谢谢,但是不推荐使用
SimpleDataFormat
:关于本地化管理器,我使用的是Codename One提供的默认本地化。这是我正在使用的选择器的API,没有提到如何本地化选择器显示的日期: