Prashant Jajal
Prashant Jajal

Reputation: 3627

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.

Upvotes: 2

Views: 3555

Answers (1)

Blackbelt
Blackbelt

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

Related Questions