내 탐색보기 서랍이 2 개 있습니다. 오른쪽 서랍이 열려있을 때 왼쪽 서랍을 잠그고 싶습니다. 왼쪽 서랍이 열려 있으면 오른쪽 서랍을 잠그고 싶습니다.다른 하나가 열려있을 때 탐색 서랍을 잠그는 방법
예를 들어 왼쪽이 열린 경우 오른쪽에서 스 와이프하여 닫으면 왼쪽 서랍이 완전히 닫히기 전에 오른쪽 서랍이 열리기 시작합니다. 이것은 바람직한 행동이 아닙니다.
다음은 시도한 내용이지만 서랍을 스 와이프 할 때 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);
그랬습니다. 방금 DrawerToggler 헬퍼 클래스에 추가하고'_leftLayout'과'_rightLayout'을 오버로드 생성자에 추가했습니다. 챔피언처럼 작동합니다! –