Xamarin Android,无法显示微调器DatePickerDialog

时间:2018-02-07 17:16:26

标签: c# xml xamarin datepicker xamarin.android

在我的应用程序中,我试图显示一个微调器DatePickerDialog。问题是,当我在我的设备中运行应用程序时,结果是这样的。

enter image description here

否则,当我在模拟器上运行应用程序时(我尝试了不同),结果就是这个

enter image description here

Csharp代码就是这个

private void birthdateInput(object sender, EventArgs e)
    {
        DateTime today = DateTime.Today;
                    DatePickerDialog dialog = new DatePickerDialog(this,Resource.Style.CustomDatePickerDialogTheme, OnDateSet, today.Year, today.Month, today.Day);
                    dialog.Show();
                }

    void OnDateSet(object sender, DatePickerDialog.DateSetEventArgs e)
    {
        birthdateBtn.Text = e.Date.ToLongDateString();
    }

并且样式的xml代码是

    <style name="CustomDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
</style>
<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.DatePicker">
    <item name="android:datePickerMode">spinner</item>
</style>

我的问题是我怎样才能在我的设备(以及其他所有设备)上显示像微调器一样以及为什么会发生这种情况? 非常感谢你。

1 个答案:

答案 0 :(得分:0)

每个API都对默认主题进行了更改。您可以使用deprecated Holo Light和Dark主题与旋转器进行“旧”样式对话,否则您将在以后包含日历的API上获得较新的Modern主题警报对话框图。

DatePickerDialog dialog = new DatePickerDialog(this, AlertDialog.ThemeHoloLight, OnDateSet, today.Year, today.Month, today.Day);

注意:这些仍适用于最新的API-27 / Oreo

AlertDialog.ThemeHoloLight

enter image description here

AlertDialog.ThemeHoloDark

enter image description here