Как установить цвет текста для отдельного пункта меню в Kotlin? - PullRequest
0 голосов
/ 02 июля 2018

Как установить цвет текста для отдельного пункта меню в Kotlin?

private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
    when (item.itemId) {
        R.id.navigation_home -> {
            toolbar.title = "Home"
            item.actionview.SetColor(ContextCompat.getColor(applicationContext, R.color.highlight))
            val homeFragment = HomeFragment.newInstance()
            openFragment(homeFragment)
            return@OnNavigationItemSelectedListener true
        }
        ...

1 Ответ

0 голосов
/ 02 июля 2018

Вы можете сделать это с помощью spannable строки Используйте эти функции:

    fun getColoredSpannableString(s: String, color: Int): SpannableString {
        val str = SpannableString(s)
        str.setSpan(ForegroundColorSpan(color), 0, s.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
        return str
    }

    fun makeMenuItemColored(mi: MenuItem, color: Int) {
        mi.title = getColoredSpannableString(mi.title.toString(), color)
    }

и по вашей активности звоните:
makeMenuItemColored(mi, ContextCompat.getColor(this, R.color.colorPrimary))
где mi - это ваш пункт меню и измените цвет на любой другой.

...