【问题标题】:Xamarin.Forms: Why is MasterDetailPage.IsPresentedChanged raised three times on Android?Xamarin.Forms:为什么 MasterDetailPage.IsPresentedChanged 在 Android 上提升了 3 次?
【发布时间】: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;
    }
}

(hosted on GitHub)

Android上通过按钮点击打开或关闭MasterPage时,IsPresentedChanged事件被触发三次而不是一次.根据命令行输出,IsPresented 属性分别切换为True-False-TrueFalse-True-False

使用滑动手势打开或关闭或点击DetailPage 效果很好。在 iOS 上完全没有问题。

我做错了什么吗?或者是否有一个简单的解决方法来获得可靠的事件?

【问题讨论】:

    标签: android events xamarin xamarin.forms


    【解决方案1】:

    好的,使用 Xamarin.Forms 的当前版本 1.4.0,问题似乎已得到解决。打开滑出式菜单会产生一个“真”,关闭它会产生“假”——正如预期的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2019-06-23
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多