티스토리 뷰

Android/ViewPager

[ ViewPager #2 ] WrapContent ViewPager

녹색꼬맹이 2019. 12. 17. 22:32
반응형
SMALL

ViewPager 의 Wrap Content 를 적용하기 위함.

 

페이지마다 높이값이 다를 경우 ( 그 전 페이지 보다 지금 페이지가 높이가 더 높을 경우 ) 

 

높이가 바뀜. 

 

약간의 Custom 이 필요.

 


  
class WrapViewPager(context: Context) : ViewPager(context) {
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
var heightMeasureSpec = heightMeasureSpec
val mode = MeasureSpec.getMode(heightMeasureSpec)
if (mode == MeasureSpec.UNSPECIFIED || mode == MeasureSpec.AT_MOST) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
var height = 0
for (i in 0 until childCount) {
val child = getChildAt(i)
child.measure(
widthMeasureSpec,
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)
)
var h = child.measuredHeight
if (h > height) height = h
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
}

 

반응형
LIST
댓글