Jetpack Compose自定义主题排版无法作用于按钮文本问题
Jetpack Compose主题排版不作用于按钮文本的解决方案
问题根源
Jetpack Compose的Material Button组件默认采用Typography中的labelLarge样式,而非你自定义的bodyLarge。你只配置了bodyLarge,按钮自然不会继承对应的字体设置。
修复方法
方法一:全局配置按钮默认样式
修改CustomTypography,添加上labelLarge的配置,和你需要的bodyLarge保持一致:
val CustomTypography = Typography( bodyLarge = TextStyle( fontFamily = ReemKufi, fontWeight = FontWeight.Bold, fontSize = 16.sp, lineHeight = 24.sp, letterSpacing = 0.5.sp ), // 配置按钮默认使用的labelLarge样式 labelLarge = TextStyle( fontFamily = ReemKufi, fontWeight = FontWeight.Bold, fontSize = 16.sp, lineHeight = 24.sp, letterSpacing = 0.5.sp ) )
这样所有默认依赖labelLarge的组件(比如Button、TextButton)都会自动应用你定义的字体样式。
方法二:局部指定按钮文本样式
如果不需要全局修改,可在使用Button时显式指定文本的样式:
Button(onClick = { /* 点击事件逻辑 */ }) { Text( text = "示例按钮", style = MaterialTheme.typography.bodyLarge ) }
内容的提问来源于stack exchange,提问作者GrassWarlock
相关产品推荐
相关产品推荐

