Search code examples
androidandroid-viewpager2

dynamic ViewPager2 height calculation for each item


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.


Solution

  • 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)
        }