簡體   English   中英

如何以編程方式更改 Jetpack Compose 中的字體系列?

[英]How to change font family in Jetpack Compose programmatically?

我正在構建一個 Android 應用程序,我想在設置中添加一個選項,供用戶選擇他想要使用應用程序自定義字體系列,或者只使用默認系統字體系列,也許還有其他字體的選項。 compose 中有一個選項可以執行此操作嗎?

我可以通過使用defaultFontFamily參數來做到這一點,向MyAppTheme Composable 添加一個額外的參數並將版式對象傳遞給MaterialTheme()構造函數而不是默認的構造函數,如下面的代碼所示:

fun getTypography(fontFamily: FontFamily) = Typography(
    defaultFontFamily = fontFamily
)

Theme.kt

@Composable
fun MyAppTheme(
    darkTheme: Boolean = isSystemInDarkTheme(),
    // Added fontFamily param
    fontFamily: FontFamily = Rubik,
    content: @Composable () -> Unit) {

    val colors = if (darkTheme) {
        DarkColorPalette
    } else {
        LightColorPalette
    }

    val typography = getTypography(fontFamily)

    MaterialTheme(
        colors = colors,
        typography = typography,
        shapes = Shapes,
        content = content
    )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM