修复 Codename One 轻量级日期选择器的外观
Fix appereance of a Codename One lightweight date picker
同一个Codename One轻量级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有以下两种出现方式(区别是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()));
}
};