안드로이드에서 viewpager2 + fragmentStateAdapter 조합으로 사용할 때 wrap_content으로 하면 fragment 부분이 보이지 않는 경우가 있는데 해당 화면을 보여주기 위해서
뷰페이저 apply에 해당 부분을 넣어준다.
registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
super.onPageSelected(position)
// viewPager
val view = (binding.inspectVp2Inspect[0] as RecyclerView).layoutManager?.findViewByPosition(position)
view?.post {
val wMeasureSpec =
View.MeasureSpec.makeMeasureSpec(view.width, View.MeasureSpec.EXACTLY)
val hMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
view.measure(wMeasureSpec, hMeasureSpec)
if (binding.inspectVp2Inspect.layoutParams.height != view.measuredHeight) {
binding.inspectVp2Inspect.layoutParams = (binding.inspectVp2Inspect.layoutParams).also { lp ->
lp.height = view.measuredHeight
}
}
}
}
})