기본 Tab 볼드 처리
fun TabLayout.Tab.setBold() = this.view.children.find { it is TextView }?.let { tv ->
(tv as TextView).post {
tv.setTypeface(null, Typeface.BOLD)
}
}
다른 Typeface로 교체 가능
선택지가 4가지 밖에 없기는 하다.
사용자가 선택한 탭의 문구 볼드 처리
fun TabLayout.setSelectedTabBold() =
this.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
tab?.let {
setStyleForTab(it, Typeface.BOLD)
}
}
override fun onTabUnselected(tab: TabLayout.Tab?) {
tab?.let {
setStyleForTab(it, Typeface.NORMAL)
}
}
override fun onTabReselected(tab: TabLayout.Tab?) = Unit
fun setStyleForTab(tab: TabLayout.Tab, style: Int) {
tab.view.children.find { it is TextView }?.let { tv ->
(tv as TextView).post {
tv.setTypeface(null, style)
}
}
}
})
맨 처음 default로 첫번째 tab이 선택되어 있을 때에는 bold 처리가 되어 있지는 않는 제한 사항.
'곳간에서 인심난다 > 실무' 카테고리의 다른 글
[Android][Compose][삽질 교훈] Compose Migration + Expandable List (0) | 2023.02.23 |
---|---|
[Kotlin] Calendar extensions (0) | 2023.01.12 |
[Kotlin] BaseUseCase (0) | 2023.01.12 |
[Android][Kotlin] 문구 부분 색 변경 SpannedString (0) | 2023.01.12 |
[Android 삽질 교훈] 이모지 하나를 한 글자로 세기 위해 커스텀 InputFilter를 만들었어요. (0) | 2020.05.30 |