如何修改Android Jetpack Compose中TextField的输入字体大小
Jetpack Compose 调整TextField输入字体大小方案
单组件单独调整
给TextField传textStyle参数就能直接控制输入区域的文本字号,这是最直接的改法,Material2、Material3版本的TextField用法完全一致:
import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.material3.TextField import androidx.compose.material3.Text import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.sp @Composable fun CustomSizeTextField() { var inputValue by remember { mutableStateOf("") } TextField( value = inputValue, onValueChange = { inputValue = it }, // 核心配置:控制实际输入内容的文本样式 textStyle = TextStyle( fontSize = 18.sp // 按需调整字号数值即可 ), label = { Text("输入框标签") }, placeholder = { Text("请输入内容") } ) }
踩坑提示:别改
label、placeholder参数里的文字样式,那两个只控制提示文字、浮动标签的显示效果,和你实际输入的文本字号无关。默认输入字号是14sp,多数场景下调到16sp-18sp会有更舒服的显示效果。
如果你用的是BasicTextField,逻辑完全一致,也是通过同名的textStyle参数设置输入字号。
全局统一配置
如果项目里所有TextField都要用统一的输入字号,不用每个组件单独传参,直接修改Material主题的Typography配置即可:
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.sp val AppTypography = Typography( // TextField默认读取bodyLarge的样式作为输入文本的基础样式 bodyLarge = TextStyle( fontSize = 18.sp // 字重、字体族等其他字体属性也可以在这里统一配置 ) ) @Composable fun AppTheme(content: @Composable () -> Unit) { MaterialTheme( typography = AppTypography, content = content ) }
效果参考:
内容的提问来源于stack exchange,提问作者Yuki
相关产品推荐
相关产品推荐

