修复代号为One的轻量级日期选择器的外观

时间:2019-04-22 04:37:12

标签: codenameone

相同的Codename One轻型选择器通过以下两种方式出现(区别是Android上为“ 01/01/00”,iPhone上为“ 01/01/2000”)。

Android cod

iPhone enter image description here

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

第二个是选择器的内部布局:在iPhone屏幕快照上,您可以看到日期选择器不在居中,而是在左侧对齐。最好将两个操作系统的中心对齐。同样的问题在Android上也存在,但这种情况下不太明显。

2 个答案:

答案 0 :(得分:1)

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

 picker.setFormatter(mySimpleDateFormat);

这应该允许您显式定义格式。默认设置是使用您的设备设置来说明它们之间的区别。

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

关于居中,我不确定是否可行。这对于iOS的本机选择器来说也是一个痛苦。您可以对此提出RFE,我们可以尝试一下。

答案 1 :(得分:1)

为了最大程度地进行定制,也许还有以下类似的机会:

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