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

Android端useColorScheme()始终返回light,设userInterfaceStyle为automatic仍无效

Android下useColorScheme()始终返回light的解决办法

针对你遇到的Expo项目中Android设备上useColorScheme()一直返回light的问题,可尝试以下解决方案:

  • 确认系统深色模式已启用
    检查Android设备的系统设置:进入「显示」>「深色模式」,确保已切换到深色模式,而非「自动」或「关闭」状态。部分设备可能需要重启才能生效。

  • 简化app.json配置
    全局已设置"userInterfaceStyle": "automatic",无需在iOS和Android节点重复配置,删除这两个节点下的该属性避免冲突。修改后的相关配置如下:

    "expo": {
      // ...其他配置
      "userInterfaceStyle": "automatic",
      "ios": {
        // 移除userInterfaceStyle配置
      },
      "android": {
        // 移除userInterfaceStyle配置
      },
      // ...其他配置
    }
    
  • 升级Expo SDK版本
    旧版Expo SDK在Android深色模式适配存在已知问题,建议升级到SDK 49及以上的稳定版本,之后重新执行expo install和项目构建。

  • 确保NavigationContainer跟随颜色方案
    检查NavigationContainer是否被强制设置了浅色主题,可修改为跟随colorScheme切换:

    import { DefaultTheme, DarkTheme } from '@react-navigation/native';
    
    // ...
    
    <NavigationContainer theme={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
      // ...导航栈内容
    </NavigationContainer>
    
  • 清除缓存并重建项目
    执行以下操作清除旧配置缓存:

    1. 运行expo r -c重启开发服务器并清除缓存
    2. 若使用本地Android构建,进入项目的android目录,执行./gradlew clean后重新构建
  • 检查LoadingPage组件
    排查LoadingPage内部是否存在强制设置浅色背景或固定主题的代码,比如硬写backgroundColor: '#fff',这类代码会覆盖全局颜色方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:15:59