Status Update
Comments
se...@google.com <se...@google.com>
mp...@google.com <mp...@google.com>
ap...@google.com <ap...@google.com> #3
Thanks for the report!
sg...@google.com <sg...@google.com> #4
The release notes documentation has been edited to clarify this change in behavior for line height.
To support non-standard text sizes, we encourage users to follow the Material design system and use a different style = LocalTextStyle.current.copy(lineHeight = TextUnit.Unspecified)
, or create a custom Typography
entirely.
[Deleted User] <[Deleted User]> #5
sg...@google.com <sg...@google.com> #6
In my case, I have multiple font sizes in the same Text
(using SpanStyle
in AnnotatedString
). There are legitimate reasons for this. For example, when combining Chinese and English (phonetic) together (for language-learning purposes).
[Deleted User] <[Deleted User]> #7
Thank you for your response - unfortunately that approach only works in the most basic of circumstances (single line text). In the event that the text gets big enough to run onto two lines, or there's a subtitle, simply multiplying by the font scale is not sufficient.
Take the following as an example:
val heightRatio = LocalConfiguration.current.fontScale
MediumTopAppBar(
modifier = modifier,
title = {
Column {
Text(text = title)
Text(text = subtitle)
}
},
expandedHeight = TopAppBarDefaults.MediumAppBarExpandedHeight * heightRatio,
collapsedHeight = TopAppBarDefaults.MediumAppBarCollapsedHeight * heightRatio,
navigationIcon = /* back arrow */,
scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior()
)
The expanded height takes into account space for the collapsed height as well, so multiplying by the font scale doesn't produce an accurate result.
It seems to me that this should be something the TopAppBar handles on its own - I would expect the app bar to wrap its content in both the expanded and collapsed states. Right now the default behavior is to cut off the content if it doesn't fit, which makes it difficult to use an customize, but more importantly is a serious accessibility issue for when the font size is increased, even for single-line titles.
Is there a way to have the app bar support this natively such that it has a minimum height (likely just the current default values), and expands to wrap its content in the event that the content is too big? I imagine this could be done while still leaving the collapsedHeight
and expandedHeight
fields as is, so that the developer could hard-code that if they'd like to.
I would expect this component to support font accessibility by default, so I'd love to see that change if it's something that's possible.
Description
Jetpack Compose component used: TopAppBar, Scaffold
Android Studio Build: #AI-223.8836.35.2231.10406996, built on June 29, 2023
Kotlin version: 1.9.10
Steps to Reproduce or Code Sample to Reproduce:
1. Set system font size to large
2. Open any screen using Scaffold with TopAppBar
Actual result: the title gets truncated