У меня есть два навигационных ящика в моем представлении. Я хочу запирать левый ящик, когда правый открыт, и я хочу запирать правый ящик, когда открыт левый.
В нынешнем виде, когда (например) левый открыт, и вы проводите пальцем справа, чтобы закрыть его, правый ящик начинает открываться до того, как левый полностью закрывается. Это нежелательное поведение.
Вот что я пробовал, но получаю NullPointerException
, когда смахиваю ящик.
// Left Drawer Config
_leftDrawerToggler = new DrawerToggler(this,
_rootViewLayout,
Resource.Drawable.ic_drawer_light,
Resource.String.drawer_open,
Resource.String.drawer_close);
_leftDrawerToggler.DrawerClosed += delegate
{
InvalidateOptionsMenu();
_rootViewLayout.SetDrawerLockMode(DrawerLayout.LockModeUnlocked, _rightDrawerLayout);
};
_leftDrawerToggler.DrawerOpened += delegate
{
_leftDrawerList.SetItemChecked(0, true);
InvalidateOptionsMenu();
_rootViewLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed, _rightDrawerLayout);
};
_rootViewLayout.SetDrawerShadow(Resource.Drawable.drawer_shadow_dark, (int)GravityFlags.Left);
_rootViewLayout.SetDrawerListener(_leftDrawerToggler);
// Right Drawer Config
_rightDrawerToggler = new DrawerToggler(this,
_rootViewLayout,
Resource.Drawable.ic_drawer_light,
Resource.String.drawer_open,
Resource.String.drawer_close);
_rightDrawerToggler.DrawerClosed += delegate
{
InvalidateOptionsMenu();
_rootViewLayout.SetDrawerLockMode(DrawerLayout.LockModeUnlocked, _leftDrawerLayout);
};
_rightDrawerToggler.DrawerOpened += delegate
{
_rightDrawerList.SetItemChecked(0, true);
InvalidateOptionsMenu();
_rootViewLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed, _leftDrawerLayout);
};
_rootViewLayout.SetDrawerShadow(Resource.Drawable.right_drawer_shadow_dark, (int)GravityFlags.Right);
_rootViewLayout.SetDrawerListener(_rightDrawerToggler);