我是Android开发的新手,对Kotlin来说是全新的。我有一个带导航抽屉的应用程序,我正在尝试根据用户从导航抽屉中选择的内容来更改AppBarLayout的颜色。我尝试了几种不同的方法,最接近的是改变工具栏颜色而不是整个AppBar。这可能是可以接受的,但不是实际将其设置为我想要的颜色,而是始终将其更改为深灰色。
when (item.itemId) {
R.id.nav_audit -> {
txtMain.text = "Audit"
toolbar.setBackgroundColor(R.color.colorAudit)
loadAudits()
}
R.id.nav_testing -> {
txtMain.text = "Testing"
toolbar.setBackgroundColor(R.color.colorTesting)
}
R.id.nav_workflow -> {
txtMain.text = "Workflow"
toolbar.setBackgroundColor(R.color.colorWorkflow)
}
R.id.nav_other -> {
txtMain.text = "Other"
toolbar.setBackgroundColor(R.color.colorPrimary)
}
}
我也看过可能会更改主题,但看起来在应用程序加载后可能并不容易。任何想法都表示赞赏。
答案 0 :(得分:2)
除了更改您已经在做的工具栏的颜色外,在Kotlin中更改状态栏的一种方法是这样的:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
(activity as? AppCompatActivity)?.window?.statusBarColor =
ContextCompat.getColor(context, R.color. colorTesting)
}
您可以执行一种根据itemId返回颜色的方法