fix(widget): CapsuleTab 선택 색상을 보정한다

This commit is contained in:
2026-06-10 14:26:45 +09:00
parent ee703eb13a
commit 2c30da8110
2 changed files with 55 additions and 1 deletions

View File

@@ -70,7 +70,7 @@ class CapsuleTabBarView @JvmOverloads constructor(
text = label
isSelected = selected
setTextAppearance(R.style.Typography_Body5)
setTextColor(ContextCompat.getColor(context, R.color.white))
setTextColor(ContextCompat.getColor(context, if (selected) R.color.black else R.color.white))
background = ContextCompat.getDrawable(
context,
if (selected) R.drawable.bg_capsule_tab_selected else R.drawable.bg_capsule_tab_normal

View File

@@ -0,0 +1,54 @@
package kr.co.vividnext.sodalive.v2.widget
import android.app.Application
import android.content.Context
import android.view.LayoutInflater
import android.widget.LinearLayout
import android.widget.TextView
import androidx.test.core.app.ApplicationProvider
import kr.co.vividnext.sodalive.R
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows.shadowOf
import org.robolectric.annotation.Config
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [28], application = Application::class)
class CapsuleTabBarViewTest {
@Test
fun `selected tab은 white background와 black text를 사용한다`() {
val context = ApplicationProvider.getApplicationContext<Context>()
val tabBar = inflateTabBar()
tabBar.setMenus(listOf("전체", "AI 채팅"), selectedIndex = 0)
val selectedTab = tabBar.tabAt(0)
assertEquals(R.drawable.bg_capsule_tab_selected, shadowOf(selectedTab.background).createdFromResId)
assertEquals(context.getColor(R.color.black), selectedTab.currentTextColor)
}
@Test
fun `normal tab은 black background와 white text를 사용한다`() {
val context = ApplicationProvider.getApplicationContext<Context>()
val tabBar = inflateTabBar()
tabBar.setMenus(listOf("전체", "AI 채팅"), selectedIndex = 0)
val normalTab = tabBar.tabAt(1)
assertEquals(R.drawable.bg_capsule_tab_normal, shadowOf(normalTab.background).createdFromResId)
assertEquals(context.getColor(R.color.white), normalTab.currentTextColor)
}
private fun inflateTabBar(): CapsuleTabBarView {
val context = ApplicationProvider.getApplicationContext<Context>()
return LayoutInflater.from(context).inflate(R.layout.view_capsule_tab_bar, null, false) as CapsuleTabBarView
}
private fun CapsuleTabBarView.tabAt(index: Int): TextView {
val container = findViewById<LinearLayout>(R.id.ll_capsule_tab_container)
return container.getChildAt(index) as TextView
}
}