Как я могу настроить главную страницу своего приложения (оболочку) из OnAppearing страницы входа в систему с помощью форм Xamarin? - PullRequest
1 голос
/ 22 февраля 2020

У меня есть приложение, к которому я добавил страницу запуска в коде iOS и Android. Однако, когда приложение запускается, оно все еще довольно долго задерживается, пока оно получает данные. В настоящее время есть пустой экран, где я предполагаю, что приложение все еще настраивает конструктор.

Я пытаюсь создать промежуточную страницу, на которой появляется информация, загружающая данные. Не уверен, что это лучший способ сделать это, но пока это все, что у меня есть.

Вот код, который у меня есть:

    public App()
    {
        InitializeComponent;
        MainPage = new NavigationPage(new Test.LoginPage())
        {
        };
    }

My Test.LoginPage - это простая пустая страница Xaml с этой C# серверной частью:

public partial class LoginPage : ContentPage
{
    public LoginPage()
    {
        InitializeComponent();
    }

    protected async override void OnAppearing()
    {
        await LongRunningTask();
        App.MainPage = new AppShell(); // I want to start a shell app
    }
}

 public partial class AppShell : Shell
 {
    public AppShell()
    {
        Routing.RegisterRoute("HomeTab/QHPage", typeof(QHPage));
        // etc

Но у кода есть проблемы в том, что, во-первых, я не уверен, что делаю это правильно, а во-вторых, он говорит, что для App.MainPage требуется ссылка на объект.

Может кто-нибудь указать мне правильное направление и предложить как я могу отобразить эту промежуточную страницу, а затем отобразить реальные страницы приложения?

Обратите внимание, что в какой-то момент я также хотел бы иметь кнопку на странице входа в систему, которая при нажатии приводит меня в приложение. Но в настоящее время я просто хочу заставить работать даже самую простую версию, поэтому я ищу несколько советов по этому поводу.

1 Ответ

1 голос
/ 24 февраля 2020

Самый простой способ - установить AppShell в качестве MainPage. Код ниже работает для меня.

 Application.Current.MainPage = new AppShell();

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...