반응형
private val callback = object : OnBackPressedCallback(true // default to enabled) {
override fun handleOnBackPressed() {
// Do Something
}
requireActivity().getOnBackPressedDispatcher().addCallback(
this, // LifecycleOwner
callback
)
}
activity.onBackPressed()를 쓰지 않고 Fragment에서 자체적으로 처리하는 이유는 무엇일까?
Activity에서 특정 Fragment만 지정하여 Back 키에 관한 로직을 정의하게 될 경우 의존이 생기는 것을 방지할 수 있다.
onBackPressed를 전달 받기 위해서는 callback?.isEnabled 값을 true 로 지정해주어야 한다.
OnBackPressedCallback의 생성자는 초기 사용 설정 상태를 나타내는 Boolean 값을 사용합니다. 콜백이 사용 설정된 때만(즉, isEnabled()가 true를 반환) 디스패처가 콜백의 handleOnBackPressed()를 호출하여 뒤로 버튼 이벤트를 처리합니다.
참고자료
https://developer.android.com/guide/navigation/navigation-custom-back?hl=ko
http://pluu.github.io/blog/android/2019/02/03/androidx-backkey/
반응형
'IT > Android' 카테고리의 다른 글
navigateUp(), popBackStack() 차이 (0) | 2021.04.18 |
---|---|
AppbarLayout, CoordinatorLayout, Behavior (0) | 2021.04.07 |
21.04.03 (0) | 2021.04.03 |
람다와 익명클래스 괴담 (0) | 2021.03.14 |
Serializable vs Parcelable (0) | 2021.02.19 |
댓글