[0.82.0] Different behavior of views with position: "absolute" between old and new architecture
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C++
- Sterne
- 127k
- Forks
- 25.3k
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
Description
In the old React Native architecture, a view with position: "absolute" will overlap a child of its sibling even if that child had a higher zIndex. This meant that box1 (blue) appears below box2 (red):
In the new architecture, the stacking behavior is different — box2, being absolutely positioned outside the sibling hierarchy, will overlap box1:
Steps to reproduce
- Build and run rn-tester.
- Open RNTesterPlayground.js with reproducer.
React Native Version
0.82.0
Affected Platforms
Runtime - Android, Runtime - iOS
Areas
Fabric - The New Renderer
Output of npx @react-native-community/cli info
info Fetching system and libraries information...
System:
OS: macOS 15.4.1
CPU: (12) arm64 Apple M3 Pro
Memory: 164.56 MB / 18.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 22.17.1
path: /Users/wojciechloboda/.nvm/versions/node/v22.17.1/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 10.9.2
path: /Users/wojciechloboda/.nvm/versions/node/v22.17.1/bin/npm
Watchman:
version: 2025.04.28.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.5
- iOS 18.5
- macOS 15.5
- tvOS 18.5
- visionOS 2.5
- watchOS 11.5
Android SDK:
API Levels:
- "28"
- "31"
- "33"
- "35"
- "36"
Build Tools:
- 28.0.3
- 30.0.2
- 30.0.3
- 34.0.0
- 35.0.0
- 35.0.1
- 36.0.0
- 36.0.0
System Images:
- android-33 | Google Play ARM 64 v8a
- android-35 | Google Play ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2024.2 AI-242.23726.103.2422.12816248
Xcode:
version: 16.4/16F6
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.15
path: /opt/homebrew/opt/openjdk@17/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.0.0
wanted: 20.0.0
react:
installed: 19.1.1
wanted: 19.1.1
react-native:
installed: 0.82.0
wanted: 0.82.0
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
Stacktrace or Logs
.
MANDATORY Reproducer
https://github.com/facebook/react-native/pull/54169
Screenshots and Videos
Old arch:
New arch:
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
rn-tester erstellen und ausführen und dann RNTesterPlayground.js mit dem in PR 54169 verlinkten Reproducer öffnen. Vergleiche das Stacking absolut positionierter Elemente und von zIndex unter der alten und neuen Architektur auf Android und iOS; als erledigt gilt die Aufgabe, wenn sich das Verhalten in beiden Architekturen konsistent mit der erwarteten Geschwisterhierarchie verhält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- react-native
- Bereich
- mobile-dev
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100