Как определить текст как h1 в jetpack compose?

#android #kotlin #android-jetpack-compose

Вопрос:

В типографии Type.kt я определил стиль текста h1 следующим образом:

 h1 = TextStyle(  fontFamily = FontFamily.SansSerif,  fontWeight = FontWeight.W500,  fontSize = 70.sp,  color = Color(0xFFF8F9FC) ),  

Теперь, как я могу определить текстовый виджет как h1, чтобы эти стили текста применялись автоматически?

Ответ №1:

Если вы планируете использовать свой стиль глобально для всего текста, который вы хотите идентифицировать как h1, вам следует создать настраиваемую композицию для этого и применить свой стиль там:

 @Composable fun TextH1(  text: String,  modififer: Modifier = Modifier ) {  Text(text = text, modifier = modifier, textStyle = h1) }  

В качестве альтернативы вы можете использовать CompositionLocal, но это, как правило, становится громоздким, если его широко использовать.

Ответ №2:

Вы можете получить текущую тему h1 из любого @Composable MaterialTheme.typography.h1 приложения , поэтому ваш виджет может выглядеть следующим образом:

 @Composable fun TextH1(  text: String,  modifier: Modifier = Modifier, ) {  Text(  text = text,  modifier = modifier,  style = MaterialTheme.typography.h1,  ) }