gpt4 book ai didi

具有不同基本主题的 Android 风格

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:37 26 4
gpt4 key购买 nike

我正在开发一个具有多种风格的 android 项目。

这很好用,我可以自定义应用程序的元素,例如颜色和字符串资源。

我想让一些风格基于 AppCompat 浅色主题,一些基于 AppCompat 深色主题。

我知道我可以通过重复所有 <items> 来做到这一点在我的风格和每种风格中,将主题设置为指向每个应用程序的自定义 list 中的每个主题,但这似乎有点过分了。

是否有一些简单的方法来设置这样的主题

    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">                
<item name="colorPrimary">@color/primary_colour_tone1</item>
...lots more settings
</style>

但是不是直接指向 Theme.AppCompat.NoActionBar 而是指向在每个 gradle 构建中可以不同设置的引用?

所以是这样的:

    <style name="AppTheme" parent="**Theme reference here**">                
<item name="colorPrimary">@color/primary_colour_tone1</item>
...lots more settings
</style>

我试过使用@string/theme_name 之类的东西,但它不起作用,有没有简单的方法可以做到这一点?

最佳答案

您可以为一种或多种风格的公共(public)资源(也称为源)定义 sourceSets,这意味着您不必为所有风格重复所有资源。

例如,您有 3 种口味。 flavor1flavor2 使用相同的主题,但 flavor3。然后你可以为公共(public)资源定义额外的源集,例如commonA(for flavor1, flavor2)和commonB(for flavor3):

...
android {
...
productFlavors {
flavor1{

}
flavor2{

}
flavor3{

}
}

sourceSets.flavor1{
res.srcDirs = ['res', 'src/commonA/res']
}
sourceSets.flavor2{
res.srcDirs = ['res', 'src/commonA/res']
}
sourceSets.flavor3{
res.srcDirs = ['res', 'src/commonB/res']
}
}

您还应该创建文件夹 src/commanAsrc/commonB 然后将您的公共(public)资源放入它们的 res 文件夹中。

关于具有不同基本主题的 Android 风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34068870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com