1

私の Xamarin プロジェクトには、その結果が次のようなフォームがあります。

このページは読み込みに時間がかかります

基本的に、ヘッダー (1) とこのフォームのボディ (2) があります。ヘッダーは、AbsoluteLayout を使用した非常に単純なビルドです。

本文を作成するために (2) タブ コントロールを表示するコンポーネントを作成し、次に各タブに画像とテキストを含む特定のグリッドを作成しました。セクションごとに、データベースにレコードがいくつあるかをチェックして、テキストを変更しています。このアクティビティは非常に長く、速度を向上させる理由と方法を理解しようとしています。

次に、ページの後半にタブコントロールを追加して、ユーザーがすぐにヘッダーを表示し、数秒後にすべてのページを表示できるようにする必要があります。コードは次のようなものです。

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;
    }
}

コンテンツを追加するさまざまな方法を試しましawait ShowDetails(card);たが、何も起こりません。基本的にawait ShowDetails(card);は実行しない限り内容は変わりません。私は発見しましたTask.Yield();(ページがレンダリングされて表示されるのを待ってから続行できます)が、この場合は機能しません。またWaitingPage、メッセージを表示しません。

何か提案や助けはありますか?前もって感謝します

4

0 に答える 0