반응형
Android에서 탐색 드로어를 여는 스와이프 제스처 사용 안 함
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);
이것은 매력적으로 작용할 것입니다.
스위핑을 비활성화하는 정답은 정답입니다.LOCK_MODE_LOCKED_CLOSED는 Compat 24.x에서 작동했지만, 최신 호환 라이브러리에서 기능이 변경되었으며 이제 LOCK_MODE_LOCKED_CLOSED는 햄버거 메뉴를 사용하더라도 내비게이션 메뉴가 표시되지 않습니다.
다음 수업은 저에게 도움이 됩니다(Kotlin).
class MyDrawerLayout @JvmOverloads constructor(
ctx: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : DrawerLayout(ctx, attrs, defStyleAttr) {
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)
}
}
스위핑을 비활성화하려면, 재정의onInterceptTouchEvent
그리고.onTouchEvent
에DrawerLayout
거짓으로 돌려보내게 할 겁니다
이것은 나에게 효과가 있습니다.
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});
언급URL : https://stackoverflow.com/questions/17051104/disable-the-swipe-gesture-that-opens-the-navigation-drawer-in-android
반응형
'programing' 카테고리의 다른 글
스위프트 언어에서 대소문자를 무시한 두 문자열을 비교하는 방법은 무엇입니까? (0) | 2023.08.21 |
---|---|
데몬의 도커 오류 응답: "충돌... 컨테이너에서 이미 사용 중" (0) | 2023.08.21 |
SwiftUI NavigationLink는 클릭하지 않고 목적지 보기를 즉시 로드합니다. (0) | 2023.08.21 |
jQuery로 모든 양식 요소(입력, 텍스트 영역 및 선택)를 가져오려면 어떻게 해야 합니까? (0) | 2023.08.21 |
PHP 날짜 시간이 오늘보다 큼 (0) | 2023.08.21 |