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

Android将targetApi升级到35后如何修改状态栏颜色

Android将targetApi升级到35后如何修改状态栏颜色

刚把项目targetSdk升到35,解决完布局和状态栏重叠的问题后,也卡过状态栏颜色修改的坑,来分享几个实测有效的方法,都是在Android 15真机上跑通的~


推荐方法:用WindowInsetsControllerCompat(兼容新旧版本)

这个是AndroidX提供的工具类,完美适配API21到API35,还能顺便控制状态栏图标的明暗,避免颜色冲突导致图标看不清。

在Activity的onCreate方法(或者Fragment的onViewCreated)里加这段代码:

// 确保项目依赖了androidx.core:core-ktx或androidx.appcompat:appcompat
val window = this.window
val insetsController = WindowInsetsControllerCompat(window, window.decorView)

// 第一步:设置状态栏背景颜色
window.statusBarColor = ContextCompat.getColor(this, R.color.your_custom_status_bar_color)

// 第二步:按需设置状态栏图标颜色(可选但关键)
// true = 图标和文字为深色(适配浅色状态栏);false = 图标和文字为浅色(适配深色状态栏)
insetsController.isAppearanceLightStatusBars = true

如果是在Fragment中调用,把this.window替换成requireActivity().window即可。


原生API35+专属写法(可选)

如果只需要适配Android 15及以上版本,也可以直接用系统原生属性设置,核心逻辑和上面一致:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) { // API35对应Android 15
    // 设置状态栏颜色
    window.attributes.statusBarColor = ContextCompat.getColor(this, R.color.your_status_bar_color)
    // 设置状态栏图标明暗
    window.attributes.isLightStatusBar = true
} else {
    // 兼容旧版本的 fallback 写法
    window.statusBarColor = ContextCompat.getColor(this, R.color.your_status_bar_color)
    ViewCompat.getWindowInsetsController(window.decorView)?.isAppearanceLightStatusBars = true
}

注意事项

  • 如果你之前为解决布局重叠问题用了android:fitsSystemWindows="true",或者通过WindowInsetsListener处理了内边距,这些设置不会和状态栏颜色修改冲突,两者可以共存。
  • 若要全局统一设置状态栏颜色,可在styles.xml里配置,但动态代码设置的优先级更高(适合不同页面用不同颜色的场景):
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="android:statusBarColor">@color/default_status_bar_color</item>
    <item name="android:windowLightStatusBar">true</item> <!-- 全局设置图标颜色 -->
</style>
  • 避免使用已废弃的方法,比如WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS(API35下可能出现异常行为),尽量用Insets相关API处理状态栏与布局的交互。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 12:24:35