【问题标题】:How to do themeing in Compose如何在 Compose 中进行主题化
【发布时间】:2022-01-07 19:03:22
【问题描述】:

我需要在以下结构中创建应用程序

  • 主题 1

    • 轻量版
      • 图标和图片
      • 颜色
    • 深色版
      • 图标和图片
      • 颜色
    • 字体
    • 字符串
  • 主题 2

    • 轻量版
      • 图标和图片
      • 颜色
    • 深色版
      • 图标和图片
      • 颜色
    • 字体
    • 字符串

在构建应用程序 (apk) 时,我可以将 themeType 更改为 ThemeOne/ThemeTwo 并为该主题构建应用程序。我不想在每个活动/片段中更改此主题。

举个实际例子: 对于银行应用程序,应用程序将被开发一次。

我的主题在下面

  • Icici主题
  • 轴主题
  • Sbi 主题

Icici 颜色和它们的标志将在 IciciTheme 中,同样适用于不同的主题。 橙色是 ICICI 的主要颜色 对于轴,它是紫色的 对于 sbi,它是蓝色的。

这不是专门针对primaryColors的。每个主题可以有大约 100 种颜色

我想通过 Jetpack Compose 来实现这一点, 请分享您对如何实现这一目标的想法/思考过程。

【问题讨论】:

标签: android android-studio android-jetpack-compose android-theme android-jetpack


【解决方案1】:

使用产品风格在 Android 中实现这一目标的最佳方式。 考虑您的实际示例作为参考来回答。 在特定的资源文件夹中,我们可以为特定的口味编写特定的深色和浅色主题变体。

您必须为要涵盖/交付的所有类型的变体声明风味。请将以下代码添加到具有 android{ }

的 build.gradle 文件中
...
android {
    ...
    productFlavors {
        icici{

        }
        sbi{

        }
        axis{

        }
    }

    sourceSets.icici{
        res.srcDirs = ['res', 'src/icici/res']
    }
    sourceSets.sbi{
        res.srcDirs = ['res', 'src/sbi/res']
    }
    sourceSets.axis{
        res.srcDirs = ['res', 'src/axis/res']
    }
}

考虑到维护代码的模块化方式和未来变化的方面,这是正确的做法。

【讨论】:

  • 嗨@Shankar Chowdary,如果此解决方案指导您解决问题。请考虑接受作为解决方案。让我们知道学习情况。
猜你喜欢
  • 2014-06-26
  • 1970-01-01
  • 2022-12-19
  • 2010-12-16
  • 1970-01-01
  • 2022-10-07
  • 2020-06-19
  • 1970-01-01
  • 2021-01-23
相关资源
最近更新 更多