본문 바로가기

Android

[Android] DrawerLayout의 Swipe를 비활성화 시키기

DrawerLayout을 사용하다 보면 DrawerLayout의 Swipe 기능을 비활성화시키고 싶은 경우가 있습니다.

이럴 때, 사용할 수 있는 LockMode를 알아보겠습니다.

 


DrawerLayout Doc

https://developer.android.com/reference/android/support/v4/widget/DrawerLayout
 

DrawerLayout  |  Android Developers

From class android.view.ViewGroup void addChildrenForAccessibility(ArrayList arg0) void addFocusables(ArrayList arg0, int arg1, int arg2) void addKeyboardNavigationClusters(Collection arg0, int arg1) boolean addStatesFromChildren() void addTouchables(Array

developer.android.com

 

문서를 확인해보면 setDrawerLockMode()를 이용해서 원하는 기능을 설정할 수 있었습니다.

기본적으로 전달할 수 있는 매개변수로는 4가지가 있고, 각 매개변수의 기능을 아래와 같습니다.

  • LOCK_MODE_LOCKED_CLOSED
    • 드로어의 swipe 기능을 비활성화하고, 드로어를 닫습니다.

    • 유저는 swipe 모션을 사용할 수 없습니다.

  • LOCK_MODE_LOCKED_OPEN
    • 드로어의 swipe 기능을 비활성화하고, 드로어를 오픈합니다.
    • 유저는 swipe 모션을 사용할 수 없습니다.
  • LOCK_MODE_UNDEFINED
    • 드로어의 설정된 상태들을 초기화 시킵니다.
  • LOCK_MODE_UNLOCKED
    •  LOCK_MODE_LOCKED_CLOSED, LOCK_MODE_LOCKED_OPEN로 비활성화된 swipe 기능을 활성화시킵니다.

 

위의 메서드와 상수를 활용하여 아래와 같이 호출하여 적용 할 수 있습니다.

drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);