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
,如果你知道并能向我解释,那将是非常有帮助的,无论如何你帮了很多忙。