2013-06-10 4 views

답변

125

이 나를 위해 일한 :

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN); 

그런 다음, 왼쪽으로 스 와이프에서 오른쪽으로 활성화하는,이 자원을 확인 홈 단추를 눌러 서랍을 확장하고 오른쪽에서 왼쪽으로 쓸어 넘기는 제스처를 사용하여 닫을 수 있습니다. 그러나 왼쪽에서 오른쪽으로 스 와이프가 더 이상 트리거되지 않습니다. setDrawerLockMode()를 들어

+16

잠금 해제를 위해 mDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_UNLOCKED); –

+6

위의 해결 방법으로 서랍 레이아웃을 설정하더라도 내 경우에는 작동하지 않습니다. 항상 슬쩍 제스처에 서랍을 가져옵니다. –

+0

동일한 문제가 있습니다. –

18

,이 코드에서가 아니라 Android developer 문서에 : 나는 버그를 발견

/** 
* The drawer is unlocked. 
*/ 
public static final int LOCK_MODE_UNLOCKED = 0; 

/** 
* The drawer is locked closed. The user may not open it, though 
* the app may open it programmatically. 
*/ 
public static final int LOCK_MODE_LOCKED_CLOSED = 1; 

/** 
* The drawer is locked open. The user may not close it, though the app 
* may close it programmatically. 
*/ 
public static final int LOCK_MODE_LOCKED_OPEN = 2; 
+0

그리고 이것은 이제 개발자 문서에 나와 있습니다. http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html#LOCK_MODE_LOCKED_CLOSED – greg7gkb

1

봐처럼. 예를 들어 설정 한 경우 :

android:layout_gravity="right" 

또는

android:layout_gravity="left" 

서랍 내용과 사용 .setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) 모두가 잘 될 것입니다.

그러나 android:layout_gravity="left|center_vertical" 또는 이와 비슷한 값인 LOCK_MODE_LOCKED_CLOSED이 작동하지 않습니다.

+1

맞습니다. 이유는 @ A - C https://stackoverflow.com/questions/18413116/whyi-i-cant-lock-drawerlayout-with-layout-gravity/18413276#18413276에 잘 설명되어 있습니다. – Tina