Jetpack Compose 主题:XML 主题文件和 Kotlin 主题文件的区别

Jetpack Compose theming: difference between XML theme file and Kotlin theme file

我是 Android 初学者,我正在开始使用 Jetpack Compose。我对新的 Compose 项目模板创建的这两个集合文件感到困惑:themes.xmlTheme.kt,以及 colors.xmlColor.ktcolors.xmlColor.kt都包含颜色定义,themes.xmlTheme.kt都包含原色定义。

XML 文件和 Kotlin 文件有什么区别?我应该手动同步他们的内容吗?

What's the difference between the XML file and the Kotlin file?

默认情况下,android 使用 XML 文件来设置主题...如果您正在使用撰写(这显然是您正在做的)那么您需要像这样设置主题

 setContent {
      AppThemeName { //AppThemeName is the name of your theme .. its autogenerated at the beginning by AppName+Theme
       
        }
 } 

Compose 使用 Theme.kt 获取主题信息,类似地 Color.kt 获取颜色信息

Am I supposed to manually sync their contents?

不,但这取决于...通常,如果您在整个应用程序中仅使用撰写,那么您不需要手动同步 XML 文件,因为 Theme.kt 文件具有主题您将使用的信息。

但有些情况下你需要在 theme.xml 中提及某些属性,例如 windowSplashScreenAnimatedIcon, statusBarColor,而在 compose Theme.kt

中默认无法定义这些属性