我有一个自定义DatePicker
,如果用户点击它,它就会打开。它使用与Xamarin.Forms DatePicker相同的机制。场景如下所示:
- 用户点击自定义
DatePicker
- 他没有选择日期,而是打开另一个对话框
- 现在同时打开两个对话框
我试图Unfocus()
另一个元素是否得到焦点,但没有任何反应。仍显示DatePicker
。
我还能做什么?我应该手动抛出Unfocus
事件吗?我可以以某种方式锁定 UI 以便用户在继续之前必须按"完成"按钮吗?
首先,如果我在 DatePicker
和 TimePicker
之间切换,则不会出现此问题。仅当我从DatePicker
/TimePicker
切换到我的Entry
(这会触发Focused
事件中的自定义对话框(时,才会发生这种情况。
如果您在 UI 线程上执行此操作,Unfocus()
确实有效:
private async void someEntry_Focused(object sender, FocusEventArgs e)
{
Device.BeginInvokeOnMainThread(() =>
{
this.datePicker.Unfocus();
});
// custom dialog shown to user ...
}