我有一个使用Xamarin.Forms(版本1.2.3)和MasterDetailPage
(类似于:" Show "Back to Menu" Button in iOS NavigationBar with Xamarin.Forms")的应用程序的以下最小示例:
public static class App
{
static MasterDetailPage MDPage;
public static Page GetMainPage()
{
MDPage = new MasterDetailPage {
Master = new ContentPage {
Title = "Master",
Icon = Device.OS == TargetPlatform.iOS ? "menu.png" : null,
Content = new Button {
Text = "Open detail",
Command = new Command(o => {
MDPage.Detail = new NavigationPage(new ContentPage());
MDPage.IsPresented = false;
}),
},
},
Detail = new NavigationPage(new ContentPage()),
};
MDPage.IsPresentedChanged += (sender, e) => Console.WriteLine(DateTime.Now + ": " + MDPage.IsPresented);
return MDPage;
}
}
在 Android 上通过按钮点击打开或关闭MasterPage
时,IsPresentedChanged
事件会被触发三次而不是一次。根据命令行输出,IsPresented
属性切换为True
- False
- True
或False
- True
- {{1分别。
使用滑动手势或点击False
打开或关闭效果很好。在iOS上完全没有问题。
我做错了吗?或者有一个简单的解决方法来获得可靠的事件吗?
答案 0 :(得分:0)
好的,使用Xamarin.Forms的当前版本1.4.0,问题似乎已得到解决。打开滑出菜单只产生一个" True",关闭它会产生" False" - 正如预期的那样。