react / react/react-native

ScrollView does not work inside position: absolute on Android.

オープン
#38,730 コメント 25 件 リアクション 9 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Component: ScrollView Issue: Author Provided Repro Needs: Triage :mag: Newer Patch Available Platform: Android
主要言語
C++
スター
127k
フォーク
25.3k
平均マージ
1日 23時間
マージ済み PR(30日)
4

説明

Description

ScrollView does not work inside position: absolute on Android. Scrolling works on iOS.

React Native Version

0.71.11

Output of npx react-native info

System:
OS: macOS 12.6.4
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 131.35 MB / 16.00 GB
Shell: 5.8.1 - /bin/zsh
Binaries:
Node: 16.14.0 - ~/.nvm/versions/node/v16.14.0/bin/node
Yarn: 1.22.17 - /usr/local/bin/yarn
npm: 8.5.0 - ~/.nvm/versions/node/v16.14.0/bin/npm
Watchman: 2023.04.03.00 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.12.1 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
Android SDK: Not Found
IDEs:
Android Studio: 2022.1 AI-221.6008.13.2211.9514443
Xcode: 14.2/14C18 - /usr/bin/xcodebuild
Languages:
Java: 19.0.2 - /usr/bin/javac
npmPackages:
@react-native-community/cli: Not Found
react: 18.2.0 => 18.2.0
react-native: 0.71.11 => 0.71.11
react-native-macos: Not Found
npmGlobalPackages:
react-native: Not Found

Steps to reproduce

ScrollView does not work inside position: absolute on Android. Scrolling works on iOS.

 <View style={{ height: 300, paddingTop: 100 }}>
       <View
         style={{
           position: 'relative',
           height: 40,
           borderColor: 'red',
           borderWidth: 1,
         }}>
         <View
           style={{
             height: 60,
             position: 'absolute',
             width: '100%',
             borderColor: 'green',
             borderWidth: 1,
             zIndex: 1000,
             elevation: 1000,
           }}>
           <ScrollView>
             <Text>1</Text>
             <Text>2</Text>
             <Text>3</Text>
             <Text>4</Text>
             <Text>5</Text>
             <Text>6</Text>
           </ScrollView>
         </View>
       </View>
     </View>
Snack, screenshot, or link to a repository

https://snack.expo.dev/3enX3_UHW

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

リンクされた Snack の再現例から始めて、Android で実行します。次に、ScrollView の動作を iOS と比較します。絶対位置指定された View 内の ScrollView の子要素を React Native がどのように処理しているかを追跡し、Android 固有の問題を特定します。Android で例が正しくスクロールし、動作している iOS の挙動にリグレッションが発生しなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, react-native
領域
mobile
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。