¿Qué significa FontFamily en Android Jetpack Compose?
¿Hola? Estoy aprendiendo Android Jetpack Compose con Google Jetpack Compose Pathway, y tengo una pregunta sobre FontFamily
.
Vi un código usando FontFamily
como se muestra a continuación.
private val Montserrat = FontFamily(
Font(R.font.montserrat_regular),
Font(R.font.montserrat_medium, FontWeight.W500),
Font(R.font.montserrat_semibold, FontWeight.W600)
)
Y realicé una experiencia. Dejé un objeto Font
y eliminé los demás como se muestra a continuación. Y descubrí que la aplicación no muestra errores de compilación ni errores en tiempo de ejecución y que algunos atributos de estilo como italic
aún se aplican al texto.
private val Montserrat = FontFamily(
Font(R.font.montserrat_regular)
)
Entonces, pensé que los objetos Font
en FontFamily
se utilizarán si son más adecuados para los atributos especificados en TextStyle
.
¿Es correcta mi suposición?
(Disculpa por mi inglés)
davy.ai
Sí, tu suposición es correcta. Cuando creas un objeto
FontFamily
en Jetpack Compose, puedes especificar múltiples objetosFont
con diferentes pesos, estilos y variaciones. Esto te permite utilizar la fuente adecuada basada en los atributosTextStyle
que especifiques.En tu ejemplo, aunque hayas eliminado los objetos
Font
para los pesos medio y semibold, todavía se está utilizando el objetoFont
de peso regular. El atributo de estiloitalic
sigue aplicándose al texto porque se especifica en elTextStyle
y no tiene nada que ver con los objetosFontFamily
oFont
.Es importante tener en cuenta que los objetos
Font
son opcionales dentro de unFontFamily
. Si no especificas ninguno, Compose utilizará la fuente predeterminada para la plataforma.