在AppShell和NagivationPage之间更改MainPage会中断应用程序屏幕

时间:2019-06-28 00:43:24

标签: xamarin xamarin.forms

我发现在AppShell和NagivationPage之间更改MainPage时出现了Xamarin.Forms 4.0问题。

重现此问题非常容易。

1)在Visual Studio 2019中使用AppShell模板创建新的Xamarin.Forms 4.0解决方案。

2)将内容页面添加到Views文件夹(LoginPage.xaml)

3)像这样在App.xaml.cs上更改MainPage;

    public App()
    {
        InitializeComponent();

        DependencyService.Register<MockDataStore>();
        //MainPage = new AppShell();
        MainPage = new NavigationPage(new Views.LoginPage());
    }

4)像这样在LoginPage中更改MainPage(我在LoginPage.xaml中添加了一个按钮);

    private void LoginButton_Clicked(object sender, EventArgs e)
    {
        Application.Current.MainPage = new AppShell();
    }

5)在AppShell上添加MenuItem并添加MenuItem Click事件处理程序;

private void LogoutMenuItem_Clicked(object sender, EventArgs e) 
{
   Application.Current.MainPage = new NavigationPage(new Views.LoginPage());
}

6)构建并运行应用程序

7)“登录和注销”操作使应用程序屏幕像所附的屏幕截图一样破裂。

https://www.dropbox.com/s/skbgti26v6m2x3u/Screenshot_20190627-181115.png?dl=0



App MainPage这样更改;

  

NavigationPage(new Views.LoginPage())=>新的AppShell()=>   NavigationPage(新Views.LoginPage())。

实现登录功能是一种常见模式,我认为这可能是XF错误。

我的测试环境是Windows 10 Pro上的Visual Studio 2019,我更新了XF 4.0。

是否有解决此问题的解决方案或解决方法?

最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

干得好!在Xamarin Forms Github中填写问题,以便他们解决