如何在 Kotlin 中设置单个菜单项的文本颜色?
How can I set the text color of an individual menu item in Kotlin?
如何在 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
}
...
你可以用 spannable string 来做
使用这些功能:
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)
}
从您的 activity 电话中:
makeMenuItemColored(mi, ContextCompat.getColor(this, R.color.colorPrimary))
其中 mi
是您的菜单项,并将颜色更改为您喜欢的任何颜色。
如何在 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
}
...
你可以用 spannable string 来做 使用这些功能:
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)
}
从您的 activity 电话中:makeMenuItemColored(mi, ContextCompat.getColor(this, R.color.colorPrimary))
其中 mi
是您的菜单项,并将颜色更改为您喜欢的任何颜色。