“Android 로봇은 Google에서 제작하여 공유한 저작물을 복제하거나 수정한 것으로 Creative Commons 3.0 저작자 표시 라이선스의 약관에 따라 사용되었습니다.”
Fragment를 replace 할 때
replace 하려는 Fragment가 이미 동작 중이라면
replace 하지말고 return 시켜버리는 방어 코드가 필요하다.
코드는 아래와 같다.
binding.btnFrag1.setOnClickListener {
for(fragment in supportFragmentManager.fragments) {
if(fragment.isVisible && fragment is SampleFragment1) {
return@setOnClickListener
}
}
supportFragmentManager.beginTransaction().replace(R.id.fl_fragment, SampleFragment1()).commitAllowingStateLoss()
}
위 코드는 Kotlin으로 작성되었습니다.