我发现在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。
是否有解决此问题的解决方案或解决方法?
最诚挚的问候。