c# – Xamarin表示DisplayAlert在从委托调用的函数调用时不显示

前端之家收集整理的这篇文章主要介绍了c# – Xamarin表示DisplayAlert在从委托调用的函数调用时不显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我从大小函数内部调用Greet时,DisplayAlert会按预期显示警告但是当在事件之后从委托调用它时,它将使用正确的名称(Greet Has Called)记录到输出但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");
        }

    }

上面的代码输出“嘿测试”,然后出现一个警告,说“嘿测试,欢迎”,然后输出“嘿Leo”(这是正确的,因为这是来自Facebook帐户的名称)然后没有警报显示.

解决方法

是否在GetName函数内触发了NameReceived?

也许您需要在“= {…};”之后放置app.FB.GetName()块.

如果正确触发了nameReceived,则可能没有在ui线程上运行Greet,
尝试将您的显示代码包装进去

Device.BeginInvokeOnMainThread (() => {
 DisplayAlert("Hey " + name,"OK");
});

here所述

原文链接:https://www.f2er.com/csharp/244331.html

猜你在找的C#相关文章