使用Material3 Text Composable遇参数不匹配错误,请问问题出在哪?
问题原因及解决方法
错误出在Text组件的fontSize参数上:
MaterialTheme.typography.bodyMedium返回的是TypographyStyle对象,但fontSize参数需要的是具体的Sp类型数值,而非整个样式对象。
修复后的代码
import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview @Composable fun HomeScreen(){ Box( modifier = Modifier.fillMaxSize().background(Color.Yellow), contentAlignment = Alignment.Center ){ Text( text = "HOME", // 修正:获取TypographyStyle中的fontSize属性 fontSize = MaterialTheme.typography.bodyMedium.fontSize, fontWeight = FontWeight.Bold, color = Color.Black, ) } } @Composable @Preview fun HomeScreenPreview(){ HomeScreen() }
额外优化建议
你也可以直接使用style参数应用整个Typography样式,再通过copy方法修改局部属性,代码更简洁:
Text( text = "HOME", style = MaterialTheme.typography.bodyMedium.copy( fontWeight = FontWeight.Bold, color = Color.Black ) )
内容的提问来源于stack exchange,提问作者Kaleab Woldemariam
相关产品推荐
相关产品推荐

