【发布时间】:2014-12-05 14:49:36
【问题描述】:
我有以下使用 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-False。
使用滑动手势打开或关闭或点击DetailPage 效果很好。在 iOS 上完全没有问题。
我做错了什么吗?或者是否有一个简单的解决方法来获得可靠的事件?
【问题讨论】:
标签: android events xamarin xamarin.forms