我们有一个使用Android View系统的应用程序,我们希望很快开始迁移到Jetpack Compose。该应用程序的一些屏幕看起来非常不同,因此在整个应用程序中使用单个材质主题似乎不起作用。我们真的不知道哪种颜色会是原色、副色和变种。我们有比这更多的颜色。
所以我看到了两种选择:要么不使用Material主题,而是为整个应用程序创建自己的自定义主题,要么使用Material标题,但有两到三个不同的主题,这样每个屏幕都可以使用相关的主题。
在Compose中实现解决方案2(单个应用程序中有多个材质主题(似乎很容易。但我想知道这是否是一个好的做法,是否有我们没有考虑过的缺点?
谢谢你的建议!
Compose库在colors类中的可用颜色集有限。如果你想有额外的颜色,我可以想到两种解决方案:
-
为每个特定颜色创建Colors类的扩展。这很快,但这种方法的缺点是,您将不得不处理添加了每种颜色内部主题的逻辑。样品
-
自己创建自定义Colors类,并使用CompositionLocal提供它。这样,您就不需要在任何地方都包含主题检查,只需执行一次即可,并使用
CompositionLocalProvider
提供所需的Colors
实例