在我的应用程序中,我试图显示一个微调器DatePickerDialog。问题是,当我在我的设备中运行应用程序时,结果是这样的。
否则,当我在模拟器上运行应用程序时(我尝试了不同),结果就是这个
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>
我的问题是我怎样才能在我的设备(以及其他所有设备)上显示像微调器一样以及为什么会发生这种情况? 非常感谢你。
答案 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