【发布时间】:2015-09-26 08:59:23
【问题描述】:
当我从 size 函数内部调用 Greet 时,DisplayAlert 会按预期显示警报但是当在事件后从委托调用它时,它将使用正确的名称登录到输出(已调用 Greet),但 DisplayAlert 不会显示。
public class CustomPage : ContentPage
{
...
protected override void OnValidSizeAllocated(double width, double height)
{
...
Greet("Test");
app.FB.GetName();
app.FB.NameRecieved += (s,e) =>
{
Greet(e.Name);
};
}
public void Greet(string name)
{
Utils.Log("Hey " + name);
DisplayAlert("Hey " + name, "Welcome", "OK");
}
}
上面的代码输出“Hey Test”,然后出现一个警报,说“Hey Test,Welcome”,并带有一个 OK 按钮,然后它输出“Hey Leo”(这是正确的,因为这是 Facebook 帐户中的名称)但是然后没有警报显示。
【问题讨论】:
-
您(可能)需要强制 DisplayAlert 在 UI 线程上运行。尝试使用 Device.BeginInvokeOnMainThread()
标签: c# android ios xamarin delegates