lineHeight not distributed evenly in TextInput
オープン
まだ誰も着手していません。
Component: TextInput
Issue: Author Provided Repro
Newer Patch Available
- 主要言語
- C++
- スター
- 127k
- フォーク
- 25.3k
- 平均マージ
- 1日 23時間
- マージ済み PR(30日)
- 4
説明
Description
When you have a TextInput with lineHeight > fontSize the remaining space isn't distributed evenly around the text. For example:
<View style={styles.container}>
<Text style={styles.text}>Text</Text>
<TextInput style={styles.text} value="TextInput" />
</View>
const styles = StyleSheet.create({
container: {
alignItems: 'center',
flexDirection: 'row',
gap: 10,
},
text: {
fontFamily: 'Inter-Regular',
fontSize: 16,
lineHeight: 26,
letterSpacing: -0.01,
color: '#111827',
textAlignVertical: 'top',
padding: 0,
backgroundColor: 'pink',
},
});
Result:
All the extra space in the TextInput case is on top of the text, making it hard to vertically align TextInputs (e.g. with a Text label preceding it on the same line).
React Native Version
0.71.7
Output of npx react-native info
System:
OS: macOS 13.4.1
CPU: (8) arm64 Apple M1 Pro
Memory: 63.06 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.16.1 - ~/.nvm/versions/node/v18.16.1/bin/node
Yarn: Not Found
npm: 9.5.1 - ~/.nvm/versions/node/v18.16.1/bin/npm
Watchman: 2023.07.03.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.12.1 - /Users/tibbe/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
Android SDK: Not Found
IDEs:
Android Studio: 2022.2 AI-222.4459.24.2221.10121639
Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
Languages:
Java: 11.0.19 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.2.0 => 18.2.0
react-native: 0.71.7 => 0.71.7
react-native-macos: Not Found
npmGlobalPackages:
*react-native*: Not Found
Steps to reproduce
Use the above snippet in the iOS simulator.
Snack, screenshot, or link to a repository
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、リンクされている Snack を iOS シミュレータで実行し、lineHeight が fontSize より大きい場合の Text と TextInput の例を比較します。テキストの垂直方向の配置を担当する TextInput のエントリポイントを追跡し、その後、残りの行高のスペースがテキストの周囲に均等に分配され、表示されている配置ケースでリグレッションが発生しないことを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- react-native
- 領域
- mobile
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100