以编程方式更改Kotlin中的AppBar背景颜色

问题描述 投票:2回答:1

我对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)
    }
}

我也看过可能会改变主题,但看起来在应用程序加载后可能并不容易。任何想法都表示赞赏。

android kotlin android-appbarlayout
1个回答
2
投票

除了改变你正在做的工具栏的颜色,改变Kotlin状态栏的一种方法是这样的:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
   (activity as? AppCompatActivity)?.window?.statusBarColor = 
        ContextCompat.getColor(context, R.color. colorTesting)
 }

您可以根据itemId执行返回颜色的方法

© www.soinside.com 2019 - 2024. All rights reserved.