繁体   English   中英

Jetpack Compose - 继承托管应用程序的主题

[英]Jetpack Compose - inherit hosting app's theme

我正在构建一个 Android SDK ,它在被调用时启动一个活动。 Activity 需要继承与宿主应用程序相同的 Theme,即它的操作栏、按钮、文本需要与宿主应用程序具有相同的 colors。

通过在没有themeAndroidManifest.xml中声明 SDK 的活动,使用传统的 XML 视图可以轻松实现这一点,然后它将继承主机应用程序具有的任何主题。

但在 Jetpack Compose 中似乎不再可能 - 似乎Composable将始终具有默认的紫色 colors ,即使没有被包裹在MaterialTheme中。

是否可以获得 Compose 的托管应用程序主题?

It seems the only possible way to do so is to use Resources.resolveAttribute to get the hosting app's R.attr.colorPrimary , R.attr.colorSecondary etc. and manually creates a compose Colors object for MaterialTheme

是的,这是可能的。

将您的可组合物包装在MdcTheme中,如下代码片段所示:

 setContent {
       MdcTheme {
           YourComposable()
       }
 }

这将应用您的旧样式系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM