Material 3如何在旧的android设备上工作?



我是android和jetpack组成的初学者,我想用Material 3构建应用程序,但Material 3仅适用于android 12及以上。这是否意味着该应用程序将无法在旧的安卓设备上运行,或者它将自动切换到Material 2组件?

Material3没有这个限制。它也适用于android<12.

动态颜色在Android 12 (API级别31)及以上可用。
如果动态颜色可用,则可以设置动态ColorScheme。如果没有,您应该退回到使用自定义的浅色或深色ColorScheme

类似:

fun supportsDynamic() : Boolean = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S
@Composable
fun M3Theme(content: @Composable() () -> Unit) {
val inDarkMode: Boolean = isSystemInDarkTheme()
val colors = if (supportsDynamic()) {
val context = LocalContext.current
if (inDarkMode) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
} else {
if (inDarkMode) DarkColorScheme else LightColorScheme
}

androidx.compose.material3.MaterialTheme(
colorScheme = colors,
content = content
)
}

最新更新