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
相关产品推荐
相关产品推荐

