You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 13导航栏设为白色后按钮不可见的Kotlin解决方案咨询

Android 13 导航栏按钮颜色修改方案(Kotlin)

一、主题配置方式(推荐)

在对应的主题文件(res/values/themes.xml 或 res/values-v33/themes.xml)中添加以下配置,直接在主题层面解决问题:

<style name="YourAppTheme" parent="Theme.Material3.DayNight.NoActionBar">
    <!-- 设置导航栏背景为白色 -->
    <item name="android:navigationBarColor">@android:color/white</item>
    <!-- 开启浅色导航栏模式,系统自动将按钮设为深色(适配Android 10+) -->
    <item name="android:windowLightNavigationBar">true</item>
    <!-- Android 13+ 可直接指定按钮颜色(可选,若需自定义非系统默认的深色) -->
    <item name="android:navigationBarIconColor">@android:color/black</item>
</style>

二、Kotlin 代码动态设置

如果需要在运行时动态调整,可在 Activity 的 onCreate 方法中添加以下代码:

import android.os.Build
import android.graphics.Color

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // 设置导航栏背景色为白色
    window.navigationBarColor = Color.WHITE

    // 开启浅色导航栏,自动切换按钮为深色(Android 10+ 生效)
    window.isLightNavigationBarEnabled = true

    // Android 13+ 强制指定按钮颜色(按需使用)
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
        window.navigationBarIconColor = Color.BLACK
    }
}

三、注意事项

  • windowLightNavigationBar 是 Android 10(API 29)引入的适配方案,在 Android 13 中依然有效,且符合系统设计规范,优先使用。
  • navigationBarIconColor 是 Android 13(API 33)新增的 API,仅在该版本及以上生效,使用时必须添加版本判断,避免低版本崩溃。
  • 若之前的方案无效,检查是否针对 Android 13 单独配置了主题,或代码中版本判断逻辑是否错误(比如误将 API 33 写成了更低版本)。

内容的提问来源于stack exchange,提问作者Limun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:01:18