Google의 탐색 서랍 가이드를 따르고 있으며 탭과 제스처가있는 활동에 추가하고 싶습니다.
탐색 창을 열려면 제스처를 비활성화하고 싶습니다. 어떻게 해야할지 아무도 모릅니다.
답변
다음을 사용해야합니다.
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
그것은 나를 위해 일했습니다. 서랍을 열려면 스 와이프가 비활성화되었습니다.
답변
잠금을 위해 다음을 수행 할 수 있습니다.
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
그리고 잠금 해제 :
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
답변
setDrawerLockMode () 사용시 중력 값도 추가하십시오 .
이 작업을 수행 :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
이것은 매력처럼 작동해야합니다
답변
스 와이프를 비활성화하려면 재정의 onInterceptTouchEvent
및 onTouchEvent
켜기를 설정 DrawerLayout
하고 false를 반환하도록합니다.
답변
스 와이프를 비활성화하는 답은 정답입니다. LOCK_MODE_LOCKED_CLOSED는 Compat 24.x에서 작동했지만 새로운 compat 라이브러리에서 기능이 변경되었으며 LOCK_MODE_LOCKED_CLOSED는 햄버거 메뉴를 사용하더라도 내비게이션 메뉴가 완전히 표시되지 않습니다.
다음 수업은 나를 위해 일합니다 (Kotlin).
class MyDrawerLayout(ctx: Context) : DrawerLayout(ctx) {
var isSwipeOpenEnabled: Boolean = true
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onInterceptTouchEvent(ev)
}
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onTouchEvent(ev)
}
}
답변
이것은 나를 위해 작동
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});