Android 如何知道Xamarin中的导航抽屉是否打开?

Android 如何知道Xamarin中的导航抽屉是否打开?,android,xamarin,xamarin.android,Android,Xamarin,Xamarin.android,我的主机上有一个NavigationDrawer,当我按下后退按钮(打开NavigationDrawer)时,应用程序退出,我希望它只关闭NavigationDrawer。在Java中,Android具有以下特点: @Override public void onBackPressed() { if (DrawerLayout.isDrawerOpen(Gravity.START)) DrawerLayout.closeDrawer(Gravity.START); else

我的主机上有一个
NavigationDrawer
,当我按下后退按钮(打开
NavigationDrawer
)时,应用程序退出,我希望它只关闭
NavigationDrawer
。在Java中,Android具有以下特点:

@Override
public void onBackPressed()
{
  if (DrawerLayout.isDrawerOpen(Gravity.START))
    DrawerLayout.closeDrawer(Gravity.START);
  else
    super.onBackPressed();
}
如何在Xamarin.Android中实现这一点?

请尝试以下代码:

public override void OnBackPressed()
{
    //if (drawerLayout.IsDrawerOpen(YourNavigationView))
    if (drawerLayout.IsDrawerOpen(Android.Support.V4.View.GravityCompat.Start))
    {
        drawerLayout.CloseDrawers();
        // or
        //drawerLayout.CloseDrawer(Android.Support.V4.View.GravityCompat.Start);
        //drawerLayout.CloseDrawer(navigationView);
    }
    else
        base.OnBackPressed();
}

只需像这样委托方法:

drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawerLayoutID);
drawerLayout.DrawerOpened += delegate
{
   //code when drawer is opened!
};
drawerLayout=findviewbyd(Resource.Id.drawerLayoutID);
DroperLayout.DroperRoped+=委托
{
//抽屉打开时的代码!
};

工作正常,谢谢。但是我不明白为什么需要
GravityCompat.Start
,如果你知道并能向我解释,那将是非常有帮助的,无论如何你帮了很多忙。