react-native/packages
Nick Gerleman 41265bac6b Reimplement Android lineHeight positioning/determination (#47271)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47271

Let's keep the recent goals of centering (instead of arbitrary prioritizing ascent), ala spec, and make some changes to allow overlapping interior line-boxes, and make the implementation a lot simpler, instead of the cruft it has been accumulating.

The new simple versions is implemented as the only `CustomLineHeightSpan`. This replaces the code used when `enableAndroidLineHeightCentering` is enabled (which is now the default).

Legacy path is renamed to `LegacyLineHeightSpan`, slated to be deleted if rollout goes well.

We cannot yet cause text to overflow the bounds of the underlying TextView until potentially large later work related to ReactTextView reimplementation.

There's a somewhat arbitrary choice here, when rounding, to whether we ceil ascent vs descent when pixels don't evenly split. This does result in a visual difference, and for sake of avoiding breakage of screenshots, I left the same choice as before.

Changelog:
[Android][Fixed] - Reimplement Android lineHeight positioning/determination

Reviewed By: javache

Differential Revision: D64716557

fbshipit-source-id: 5a947377df7cfee9dff4484c840939f527caf94b
2024-10-29 17:53:16 -07:00
..
assets
babel-plugin-codegen
community-cli-plugin
core-cli-utils
debugger-frontend
dev-middleware
eslint-config-react-native
eslint-plugin-react-native
eslint-plugin-specs
gradle-plugin
helloworld
hermes-inspector-msggen
metro-config
normalize-color
polyfills
react-native Reimplement Android lineHeight positioning/determination (#47271) 2024-10-29 17:53:16 -07:00
react-native-babel-preset
react-native-babel-transformer
react-native-bots
react-native-codegen
react-native-codegen-typescript-test
react-native-info
react-native-popup-menu-android
react-native-test-library
react-native-test-renderer
rn-tester Add lineHeight screenshot tests (#47270) 2024-10-29 17:53:16 -07:00
typescript-config
virtualized-lists