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

BeeWare/Briefcase Android应用忽略pyproject.toml中base_theme配置的问题咨询

BeeWare/Briefcase Android应用忽略pyproject.toml中base_theme配置的问题咨询

我正在用BeeWare/Briefcase和Toga开发一款跨平台移动应用,iOS端的暗黑模式运行完全正常,但Android端遇到了问题:当系统切换到暗黑模式时,toga.DetailedList的文本在深色背景上依旧是黑色,可读性很差。

为了修复这个问题,我希望让Briefcase默认应用的AppTheme.Launcher主题继承自Material DayNight主题,同时配置好textColorPrimary/Secondary这类适配暗黑模式的属性。我尝试了以下配置和操作:

我的pyproject.toml配置

[tool.briefcase.app.firstapp.android]
requires = [
    "toga-android>=0.5.1,<0.6.0",
]
base_theme = [ "Theme.Material3.DayNight.NoActionBar" ]
theme = [ "Theme.Material3.DayNight.NoActionBar" ]
build_gradle_dependencies = [
    "androidx.appcompat:appcompat:1.0.2",
    "com.google.android.material:material:1.12.0",
    "androidx.constraintlayout:constraintlayout:1.1.3",
    "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0",
]

执行的操作命令

rm -rf build/firstapp/android
briefcase create android
briefcase build android

遇到的问题

即使我设置了base_theme,生成并合并后的资源文件里,AppTheme.Launcher的定义依然没有父主题:

<style name="AppTheme.Launcher">
    <item name="android:windowBackground">@drawable/splash_screen_background</item>
</style>

不管是生成的styles.xml还是合并后的values目录中,都看不到parent="Theme.Material3.DayNight.NoActionBar"这个属性。

预期的结果

我期望生成的主题样式应该是这样的:

<style name="AppTheme.Launcher" parent="Theme.Material3.DayNight.NoActionBar">
    …
</style>

我的疑问

想请教大家几个问题:

  • 当前版本的Briefcase是否真的会读取并应用[tool.briefcase.app.<appname>.android]下的base_theme配置项?
  • 如果支持的话,我在配置或者操作步骤中哪里出错了?怎样才能让AppTheme.Launcher正确继承指定的父主题?
  • 如果当前Briefcase不支持这个配置的话,有没有官方推荐的方法可以覆盖Android应用的主题父类,且不会被briefcase create命令覆盖我的修改?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 08:32:59