每个项目的动态 ViewPager2 高度计算
dynamic ViewPager2 height calculation for each item
我正在使用 ViewPager2
来显示 3 个适配器项目..并且每个项目都有不同的布局。因此在更改 viewpager2
.
的选项卡时应调整 viwepager2
的高度
请提出 Viewpager2
的解决方案。
我用
取得了类似的成就
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()
}
}
使用以下代码段获取当前页面 view
:
viewPager2.setPageTransformer { page, position ->
updatePagerHeightForChild(page, viewPager2)
}
我正在使用 ViewPager2
来显示 3 个适配器项目..并且每个项目都有不同的布局。因此在更改 viewpager2
.
viwepager2
的高度
请提出 Viewpager2
的解决方案。
我用
取得了类似的成就 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()
}
}
使用以下代码段获取当前页面 view
:
viewPager2.setPageTransformer { page, position ->
updatePagerHeightForChild(page, viewPager2)
}