현재 보여지는 fragment 에서 뒤로가기 버튼을 누른 이벤트를 처리하고 싶은 경우가 있습니다. interface BackpressedListener 를 활용한 간단한 예제를 정리하려고 합니다.         1. BackpressedListener...

[안드로이드] Fragment 뒤로가기 : onBackpressed



현재 보여지는 fragment 에서 뒤로가기 버튼을 누른 이벤트를 처리하고 싶은 경우가 있습니다.

interface BackpressedListener 를 활용한 간단한 예제를 정리하려고 합니다.

 

 

 

 

1. BackpressedListener

MainActivity 에서 interface BackPressedListener 를 정의해주었습니다.

interface BackPressedListener {
fun onBackPressed()
}

 

뒤로가기에 대한 event 를 처리해주고 싶은 Fragment 에서

interface 를 연결하고 재정의 한다면 이를 활용할 수 있을 것 입니다.

class Fragment1: Fragment(), BackPressedListener {

lateinit var binding: Fragment1Binding

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_1, container, false)
return binding.root
}

override fun onBackPressed() {
Log.d("onBackPressed", "Fragment1")
}

}

 

 

 

2. BackpressedListener 호출

이제 재정의한 onBackpressed 를 호출만 하면 됩니다.

MainActivity 뒤로가기 이벤트 근원지(?) 에서 호출해줍니다.

override fun onBackPressed() {
super.onBackPressed()

val fragment = currentFragment
if (fragment != null) {
if (fragment is BackPressedListener) {
fragment.onBackPressed() // 호출
}
}
}

 

 

 

 

 

 

0 comments: