Android Catch back button in fragment
사용 언어: Kotlin 1.5.0
사용 버전: Android Studio 4.2.1
back button이 눌러졌을 때, 단순히 뒤로 가는 것이 아니라 사용자가 정의한 함수를 실행하게 하려면 어떻게 해야 할까요?
이때 사용하는 것이 OnBackPressedCallback입니다.
Back button을 변경해야 하는 fragment에 OnBackPressedCallback 변수를 만듭니다.
사용 버전: Android Studio 4.2.1
안드로이드 Catch back button in fragment를 알아보겠습니다.
back button이 눌러졌을 때, 단순히 뒤로 가는 것이 아니라 사용자가 정의한 함수를 실행하게 하려면 어떻게 해야 할까요?
이때 사용하는 것이 OnBackPressedCallback입니다.
Back button을 변경해야 하는 fragment에 OnBackPressedCallback 변수를 만듭니다.
onCreateView에 backPressCallback이 null이면 backPressCallback을 정의하도록
만듭니다.
addCallback의 중괄호 {} 안에 적힌 부분이 Back button을 눌렀을 때 작동되는
콜백 함수 코드 부분입니다.
여기서는 Toast만 실행되겠네요.
그리고 앱이 최소화되거나 fragment가 종료될 때를 생각하여 onResume과 onStop에
setBackCallback()을 제거하는 코드와 다시 연결하는 코드를 적습니다.
backPressCallback의 isEnabled가 Back button을 눌렀을 때, 우리가 적은
Callback 부분(여기서는 Toast가 있는 부분)의 작동 여부를 설정할 수 있습니다.
이렇게 설정하면, Activity의 onBackPress() method를 불러도 우리의 Callback
함수가 작동하게 됩니다.
아래는 뒤로 눌렀을 때 hello Toast가 나오는 모습입니다.
끝.
카테고리: Android
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.