프로그래밍/android

[android] FragmentPagerAdapter, setUserVisibleHint deprecated

-샤리- 2021. 2. 10. 17:58

FragmentPagerAdapter(FragmentManager)은 deprecated 되었다. FragmentPagerAdapter(FragmentManager, int) 형태로 써 주어야 한다.

 

deprecated

class MyPagerAdapter(fm: FragmentManager): FragmentPagerAdapter(fm){
}

solved

@SuppressLint("WrongConstant")
class MyPagerAdapter(fm: FragmentManager)
    : FragmentPagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT){
}

 

그리고 setUserVisibleHint 함수도 deprecated 되었다. setUserVisibleHint를 사용하고 있다면 아래처럼 수정해주자.

 

deprecated

override fun setUserVisibleHint(isVisibleToUser: Boolean) {
	super.setUserVisibleHint(isVisibleToUser)
    
	if (isVisibleToUser){
    		// fragment가 나타날 때
	} else {
		// fragment가 숨었을 때
	}
}

solved

// fragment가 나타날 때
override fun onResume() {
	super.onResume()
}

// fragment가 숨었을 때
override fun onPause() {
	super.onPause()
}