Xamarin.android 抽屉式事件处理程序在Monodroid中调用

Xamarin.android 抽屉式事件处理程序在Monodroid中调用,xamarin.android,Xamarin.android,我在Monodroid中使用DrawerLayout小部件,这是从本教程移植的 抽屉工作正常,但是,当抽屉打开或关闭时,不会调用DroperRoped和DroperClosed事件处理程序。我使用小部件中的内置侦听器。抽屉布局被放置在片段中 有什么想法吗?非常感谢您的帮助 this.DrawerLayout.DrawerClosed += delegate(object sender, Android.Support.V4.Widget.DrawerLayout.DrawerClosedEv

我在Monodroid中使用DrawerLayout小部件,这是从本教程移植的

抽屉工作正常,但是,当抽屉打开或关闭时,不会调用DroperRoped和DroperClosed事件处理程序。我使用小部件中的内置侦听器。抽屉布局被放置在片段中

有什么想法吗?非常感谢您的帮助

this.DrawerLayout.DrawerClosed += delegate(object sender,   Android.Support.V4.Widget.DrawerLayout.DrawerClosedEventArgs e)
        {
            this.Activity.ActionBar.SetTitle(Resource.String.ApplicationName);
            this.Activity.InvalidateOptionsMenu();
        };

            this.DrawerLayout.DrawerOpened += delegate(object sender, Android.Support.V4.Widget.DrawerLayout.DrawerOpenedEventArgs e)
        {
            this.Activity.ActionBar.SetTitle(this.Title);
            this.Activity.InvalidateOptionsMenu();
        };

        this.DrawerLayout.SetDrawerListener(this.DrawerToggle);

我自己刚刚遇到这个问题。我认为,如果在设置抽屉打开和关闭事件的委托之前设置抽屉侦听器,则会触发此事件

因此,只需将代码更改为:

this.DrawerLayout.SetDrawerListener(this.DrawerToggle);

this.DrawerLayout.DrawerClosed += delegate(object sender,   Android.Support.V4.Widget.DrawerLayout.DrawerClosedEventArgs e)
        {
            this.Activity.ActionBar.SetTitle(Resource.String.ApplicationName);
            this.Activity.InvalidateOptionsMenu();
        };

            this.DrawerLayout.DrawerOpened += delegate(object sender, Android.Support.V4.Widget.DrawerLayout.DrawerOpenedEventArgs e)
        {
            this.Activity.ActionBar.SetTitle(this.Title);
            this.Activity.InvalidateOptionsMenu();
        };
这似乎对我有用