๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ณณ๊ฐ„์—์„œ ์ธ์‹ฌ๋‚œ๋‹ค/์‹ค๋ฌด

[Android][Kotlin] ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ํƒญ์˜ ๋ฌธ๊ตฌ์— ๋ณผ๋“œ ์ฒ˜๋ฆฌ

๊ธฐ๋ณธ 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 ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ์ง€๋Š” ์•Š๋Š” ์ œํ•œ ์‚ฌํ•ญ.