我正在使用MediumTopAppBar,我正在try 在不 destruct 小标题的情况下更改大标题的文本样式.

所以我现在要做的是:

MediumTopAppBar(
                title = { HeadlineLargeBlackText(text = "pageTitle") },
                navigationIcon = {
                    IconButton(onClick = { onBackPressed.invoke() }) {
                        Icon(
                            imageVector = Icons.Filled.ArrowBack,
                            contentDescription = stringResource(id = R.string.action_back)
                        )
                    }
                },
                scrollBehavior = scrollBehavior
            )

我的问题是,当我将其设置为"HeadlineLargeBlackText"时,它会自动更改大小文本的文本样式,使其看起来像这样(在大小文本都可见的情况下拍摄的图像):

titles

我想要的是底部大,顶部小.

当我进入MediumTopAppBar时,我确实看到TwoRowsTopAppBar中的大小文本样式设置为:

   titleTextStyle = MaterialTheme.typography.fromToken(TopAppBarMediumTokens.HeadlineFont),
    smallTitleTextStyle = MaterialTheme.typography.fromToken(TopAppBarSmallTokens.HeadlineFont),

但OFC这种方法是私有的://所以我想知道,有没有可能以某种方式分别访问这些大/小文本?

推荐答案

目前,100使用titleLargeheadlineSmall文本样式,这些文本样式是用您的主题中的排版属性定义的.

您可以使用以下命令在主题中定义它们:

val customTypography = androidx.compose.material3.Typography(
    titleLarge = TextStyle(
        fontWeight = FontWeight.SemiBold,
        fontSize = 22. sp,
        lineHeight = 28. sp,
        letterSpacing = 0. sp
    ),
    headlineSmall = TextStyle(
        fontWeight = FontWeight.SemiBold,
        fontSize = 16. sp,
        lineHeight = 24. sp,
        letterSpacing = 0.15.sp
    ),
)

如果你不习惯将它们应用于整个应用程序,你可以只将自定义主题应用到MediumTopAppBar个主题,如下所示:

  Scaffold(
        modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
        topBar = {

            AppTheme {
                MediumTopAppBar(
                    title = {
                        androidx.compose.material3.Text(
                            "Medium TopAppBar",
                            maxLines = 1,
                            overflow = TextOverflow.Ellipsis
                        )
                    },
                    //....
                )
            },
            //....  
  }

哪里

fun AppTheme(
    useDarkTheme: Boolean = isSystemInDarkTheme(),
    content: @Composable() () -> Unit
) {
    //...
    aMaterialTheme(
        colorScheme = colors,
        typography = customTypography,
        content = content
    )
}

enter image description here enter image description here

Android相关问答推荐

如何使用Jetpack Compose使水平pager 显示离屏页面?

泛型类型lambda函数参数作为函数参数

避免在按下肯定按钮时自动取消AlertDialog

如何使用Jetpack Compose实现此底表?

设置文本 colored颜色 动画时如何减少重新组合?

更改当前活动并返回后,Android webview 滚动不起作用

Android AGP 8 + Gradle 8 + Kotlin 1.8 导致 Kapt 出错

Android Studio电鳗:javaHome好像无效

如何将一个 Composable 作为其参数传递给另一个 Composable 并在 Jetpack Compose 中显示/运行它

我该怎么做文本计时器

在 Google Play 中将用户从开放测试转移到生产的过程是怎样的?

如何在 Jetpack compose 中将 Canvas 中的文本居中?

Kotlin Compose forEach 中的负间距

在 Jetpack Compose 中 Select 要省略的文本

compose FontFamily 错误:必须初始化变量

如何从构建的流对象中发出值

升级到 android studio 花栗鼠后,应用程序未安装在模拟器中

Google API:java.lang.ClassNotFoundException:找不到类sun.misc.Service

jetpack compose中的类的实例,则通知状态更改

如何在Android中从位图中裁剪圆形区域