react-native Android - Composer - 上一行文本在创建下一行后被截断

68bkxrlz  于 4个月前  发布在  React
关注(0)|答案(5)|浏览(48)

描述

当TextInput组件被控制,并且multiline属性设置为true时,在输入一些文本并添加新行后,文本会被截断。然而,当添加一个新字符时,文本会正确显示。

重现步骤

  1. 添加一个TextInput
  2. 设置value prop和onChangeText
  3. 将multiline prop设置为true
  4. 添加一些文本
  5. 添加一个新行,通过键盘上的Enter按钮
  6. 文本被截断

React Native版本

0.74.3

受影响的平台

运行时-Android

npx react-native info的输出

System:
  OS: macOS 13.6.7
  CPU: (10) arm64 Apple M1 Pro
  Memory: 41.83 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.14.0
    path: ~/.nvm/versions/node/v20.14.0/bin/node
  Yarn:
    version: 1.22.22
    path: /opt/homebrew/bin/yarn
  npm:
    version: 10.7.0
    path: ~/.nvm/versions/node/v20.14.0/bin/npm
  Watchman:
    version: 2023.11.27.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.15.2
    path: /Users/eduardograciano/.gem/bin/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.3 AI-223.8836.35.2231.10671973
  Xcode:
    version: 14.3.1/14E300c
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.10
    path: /usr/bin/javac
  Ruby:
    version: 2.7.5
    path: /Users/eduardograciano/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react: Not Found
  react-native: Not Found
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: false
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: true

堆栈跟踪或日志

-

可复现问题

https://github.com/gedu/android-composer-reproducer

截图和视频

android_composer_cutoff_multiline.mp4

kfgdxczn

kfgdxczn1#

⚠️添加或重新格式化版本信息
i️我们无法在您的问题报告中找到或解析React Native的版本号。请使用此模板,并报告您的版本,包括主要、次要和补丁编号 - 例如:0.70.2
kognpnkq

kognpnkq2#

@gedu 我检查了这个问题,它在新架构中可以重现,在旧架构中也能正确工作。
@cortinico 我会调查这个问题。

yrdbyhpb

yrdbyhpb3#

在调试过程中,我发现了这个待办事项:
react-native/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java
第1342行 in 245e5d9
| | // TODO T58784068: 一旦Fabric发布,就移动这个构造函数 |
在这里我们将padding设置为零。
我们需要将这段代码块移动到哪里?

vsaztqbk

vsaztqbk4#

我认为这与正在修复的这个PR是同一个问题- #42331

eivnm1vs

eivnm1vs5#

@j-piasecki 我认为你的分叉仓库与主仓库不同步。
这个文件:
packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java 目前已经不存在了。
此外,这个文件中的代码也发生了变化:
packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java
你能检查一下吗?我正在尝试测试这个修复。

相关问题