我正在开发一个支持各种语言/文化的应用程序。但是,DatePicker 控件对于泰国文化来说似乎有问题:
我尝试使用 ThreadCulture(也尝试过 CultureInfo.CurrentCulture 或 CultureInfo.CurrentUICulture):
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture
和应用泰国佛教日历:
_ = new System.Globalization.ThaiBuddhistCalendar();
但小组件年份始终显示为 2021,而不是 2564。
任何解决该问题的提示都会非常有帮助。
您可以按照以下步骤操作。
-
更改选择器的年份范围。默认从1900到2100。您可以在Xaml中的Xamarin.Forms DatePicker中设置。
<DatePicker MaximumDate="12/31/2600"></DatePicker>
-
当您设置ThaiBuddhistCalendar
,DatePicker 将在测试中显示默认的日期时间(2564 年)。但是当您打开对话框时,您需要更改自定义渲染器中的年份。
DatePickerDialog pickerDialog;
private Xamarin.Forms.DatePicker datePicker;
protected override DatePickerDialog CreateDatePickerDialog(int year, int month, int day)
{
pickerDialog = new DatePickerDialog(Context, (o, e) =>
{
datePicker.Date = e.Date.AddYears(-543);
((IElementController)datePicker).SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, false);
}, year + 543, month, day);
return pickerDialog;
}
有关 DatePicker 自定义渲染器的更多详细信息,您可以查看我之前完成的代码。如何更改 Xamarin 表单中的 DatePicker 确定和取消按钮文本? https://stackoverflow.com/questions/69042729/how-to-change-datepicker-ok-and-cancel-button-text-in-xamarin-forms/69069635#69069635
我们只能将屏幕截图中粉红色部分的年份更改为 2564。中间的黑色2021,由于原生默认值,我们无法第一次更改默认值。但是当我们再次选择2564时,黑色的2021就可以了。
private static final int DEFAULT_START_YEAR = 1900;
private static final int DEFAULT_END_YEAR = 2100;
Xamarin.Android只是Android原生库的一层包装,没有额外的操作,你可以转向报告错误 | Android 开源项目 https://source.android.com/setup/contribute/report-bugs求助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)