不一定需要使用app theme composable,可以通过创建自定义主题的类并将其传递给MaterialTheme()方法来实现自定义主题。
例如,可以创建一个名为MyAppTheme的类:
class MyAppTheme(private val darkTheme: Boolean = isSystemInDarkTheme()) {
val colors: Colors
@Composable
get() = if (darkTheme) DarkColors else LightColors
@Composable
fun content(content: @Composable () -> Unit) {
MaterialTheme(colors = colors) {
content()
}
}
}
并在需要自定义主题的页面中使用MyAppTheme().content()将布局包裹起来。例如:
@Composable
fun MyCustomScreen() {
MyAppTheme().content {
// Your custom screen layout
}
}
这样就可以在Android Jetpack Compose中实现自定义主题了,而不必使用app theme composable。