fix(creator): 탭 ViewPager 높이 계산을 보정한다

This commit is contained in:
2026-06-19 21:47:06 +09:00
parent 1a9a78ec70
commit df78b8a3f5
2 changed files with 22 additions and 2 deletions

View File

@@ -731,10 +731,12 @@ class CreatorChannelActivity :
val heightSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)
currentPage.measure(widthSpec, heightSpec)
val measuredHeight = currentPage.measuredHeight
if (measuredHeight <= 0 || binding.viewPager.layoutParams.height == measuredHeight) return@post
val viewPagerVerticalPadding = binding.viewPager.paddingTop + binding.viewPager.paddingBottom
val targetHeight = measuredHeight + viewPagerVerticalPadding
if (measuredHeight <= 0 || binding.viewPager.layoutParams.height == targetHeight) return@post
binding.viewPager.updateLayoutParams {
height = measuredHeight
height = targetHeight
}
}
}

View File

@@ -382,6 +382,24 @@ class CreatorChannelActivitySourceTest {
assertFalse(source.contains("private fun createTabView"))
}
@Test
fun `ViewPager 높이 계산은 자체 vertical padding을 포함해 탭 하단 컨텐츠를 자르지 않는다`() {
val source = projectFile(
"app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivity.kt"
).readText()
assertTrue(
source.contains(
"val viewPagerVerticalPadding = binding.viewPager.paddingTop + binding.viewPager.paddingBottom"
)
)
assertTrue(source.contains("val targetHeight = measuredHeight + viewPagerVerticalPadding"))
assertTrue(source.contains("binding.viewPager.layoutParams.height == targetHeight"))
assertTrue(source.contains("height = targetHeight"))
assertFalse(source.contains("binding.viewPager.layoutParams.height == measuredHeight"))
assertFalse(source.contains("height = measuredHeight"))
}
@Test
fun `tab source는 기존 custom tab no op 정책을 제거한다`() {
val source = projectFile(