Reputation: 3627
I am using the ViewPager2
for showing the 3 adapter item.. and each item has a different layout. so the height of the viwepager2
should be resized when changing the tab of the viewpager2
.
Please suggest a solution for the Viewpager2
.
Upvotes: 2
Views: 3555
Reputation: 157457
I achieved something like that with
private fun updatePagerHeightForChild(view: View, pager: ViewPager2) {
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)
pager.layoutParams = (pager.layoutParams).also { lp -> lp.height = view.measuredHeight }
pager.invalidate()
}
}
get the current page view
using the below snippet:
viewPager2.setPageTransformer { page, position ->
updatePagerHeightForChild(page, viewPager2)
}
Upvotes: 18