-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support TextStyle.lineHeightStyle
#2602
Support TextStyle.lineHeightStyle
#2602
Comments
You can try this |
I tried but nothing changed |
Maybe you can use |
The problem seems to be that in |
It worked but seems different line height need multiplier to be recalculated. |
@igordmn We would need to decide how to merge |
Hello. Any news? |
@jershell Hello! Sorry, not yet |
## Proposed Changes - Set `ParagraphStyle.heightMode` based on `LineHeightStyle.Trim` value - Align default behavior with Android - Avoid using `StrutStyle` - it doesn't allow the line height trimming. Set `height` via `TextStyle` instead - Cache and post-process `lineMetrics` - Port tests from an Android source set ## Behaviour change In case of larger `lineHeight`, both paddings are trimmed by default to match the Android behaviour. ## Testing Test: run tests from `DesktopParagraphIntegrationLineHeightStyleTest` ```kt Row(horizontalArrangement = Arrangement.spacedBy(5.dp)) { for (lineHeightStyle in listOf( null, LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.Both), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.FirstLineTop), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.LastLineBottom), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.None), )) { Text("Line 1\nLine 2", modifier = Modifier.background(Color.Gray), style = TextStyle( fontSize = 18.sp, lineHeight = 50.sp, lineHeightStyle = lineHeightStyle ) ) } } ``` Before | After --- | --- <img width="285" alt="Screenshot 2023-11-08 at 13 38 08" src="/~https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/2c7fbddc-dac9-408e-ad53-cedc361fe777"> | <img width="285" alt="Screenshot 2023-11-08 at 13 37 45" src="/~https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/4fe4d7c9-a414-4338-885f-6701e6daecf1"> ## Issues Fixed Fixes (partially) JetBrains/compose-multiplatform#2602 Fixes JetBrains/compose-multiplatform#3866
## Proposed Changes - Set `ParagraphStyle.heightMode` based on `LineHeightStyle.Trim` value - Align default behavior with Android - Avoid using `StrutStyle` - it doesn't allow the line height trimming. Set `height` via `TextStyle` instead - Cache and post-process `lineMetrics` - Port tests from an Android source set ## Behaviour change In case of larger `lineHeight`, both paddings are trimmed by default to match the Android behaviour. ## Testing Test: run tests from `DesktopParagraphIntegrationLineHeightStyleTest` ```kt Row(horizontalArrangement = Arrangement.spacedBy(5.dp)) { for (lineHeightStyle in listOf( null, LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.Both), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.FirstLineTop), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.LastLineBottom), LineHeightStyle(LineHeightStyle.Alignment.Proportional, LineHeightStyle.Trim.None), )) { Text("Line 1\nLine 2", modifier = Modifier.background(Color.Gray), style = TextStyle( fontSize = 18.sp, lineHeight = 50.sp, lineHeightStyle = lineHeightStyle ) ) } } ``` Before | After --- | --- <img width="285" alt="Screenshot 2023-11-08 at 13 38 08" src="/~https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/2c7fbddc-dac9-408e-ad53-cedc361fe777"> | <img width="285" alt="Screenshot 2023-11-08 at 13 37 45" src="/~https://github.com/JetBrains/compose-multiplatform-core/assets/1836384/4fe4d7c9-a414-4338-885f-6701e6daecf1"> ## Issues Fixed Fixes (partially) JetBrains/compose-multiplatform#2602 Fixes JetBrains/compose-multiplatform#3866
Try something like this:
https://developer.android.com/jetpack/compose/text/style-paragraph#adjust-line-height |
As |
Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks. |
TextStyle.lineHeightStyle
I'm trying to set
lineHeight
andlineHeightStyle
toTextStyle
but I found thatlineHeightStyle
doesn't workminimum reproduced code:
version properties:
Actual:

Expect (use html and css😂):

The text was updated successfully, but these errors were encountered: