Xamarin.forms Xamarin表单通过代码在内容中添加新控件

Xamarin.forms Xamarin表单通过代码在内容中添加新控件,xamarin.forms,content-pages,Xamarin.forms,Content Pages,我在我的Xamarin项目中有一个表格,其结果如下: 基本上有一个标题(1)和这种形式的主体(2)。标题是非常简单的构建,具有绝对的布局 为了创建主体(2),我创建了我的组件以显示选项卡控件,然后为每个选项卡创建一个带有图像和文本的特定网格。对于每个部分,我在数据库中检查有多少条记录,并更改文本。这项活动很长,我试图理解为什么以及如何提高速度 然后,我应该在稍后的页面中添加tab控件,以便用户可以立即看到页眉,几秒钟后查看整个页面。代码如下所示: public class MyPage : W

我在我的Xamarin项目中有一个表格,其结果如下:

基本上有一个标题(1)和这种形式的主体(2)。标题是非常简单的构建,具有绝对的布局

为了创建主体(2),我创建了我的组件以显示选项卡控件,然后为每个选项卡创建一个带有图像和文本的特定网格。对于每个部分,我在数据库中检查有多少条记录,并更改文本。这项活动很长,我试图理解为什么以及如何提高速度

然后,我应该在稍后的页面中添加tab控件,以便用户可以立即看到页眉,几秒钟后查看整个页面。代码如下所示:

public class MyPage : WaitingPage
{
    public MyPage(Card card)
    {
        LoadingMessage = "Loading...";
        ShowLoadingFrame = true;
        ShowLoadingMessage = true;
        ShadeBackground = true;
        WaitingOrientation = StackOrientation.Vertical;
        IsWaiting = true;

        StackLayout stackPage = new StackLayout() {
            BackgroundColor = Color.FromHex("#fff"),
            Children = {
                ShowHeader(card),
            }
        };
        Content = stackPage;

        Task.Yield();
        Task.Run(async () => {
            Content = await ShowDetails(card);
        });

        IsWaiting = false;
    }
}
我尝试了不同的方法来添加
wait ShowDetails(卡片)中的内容但什么也没发生。基本上内容不会改变,除非
等待ShowDetails(卡片)被执行。我发现
Task.Yield()(您可以等待页面呈现和显示,然后继续),但在这种情况下不起作用。而且,
WaitingPage
也不显示消息


有什么建议或帮助吗?提前感谢您

我强烈建议您将所有异步相关调用从构造函数中取出,并在appearing()中执行它们
。使用
Task.Yield()
Task.Run()
将导致许多问题。我强烈建议将所有异步相关调用从构造函数中取出,并在
OnAppearing()
中执行它们,在那里可以正确地等待它们。使用
Task.Yield()
Task.Run()
将导致许多问题。