callstack / callstack/react-native-paper

Add default pointer event for Surface iOS

オープン
#4,101 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
feature request Surface
主要言語
TypeScript
スター
14.5k
フォーク
2.2k
平均マージ
5日 23時間
マージ済み PR(30日)
12

説明

**Is your feature request related to a problem? Please describe.**
I was making a collapsible header scrollable (For example: ScrollView, FlatList). The header is rendered with absolute style and the content of the scrollable will have a padding value based on header height. With this method of rendering I need to set `pointerEvents` prop of children of the header either to `box-none` or `none` for non-touchable component so that the header is able to receive scroll gesture. Everything was working fine until I used `Surface` component, things behaved a little different between Android and iOS:
- Android: working as expected when setting `pointerEvents` prop to `box-none` or `none`
- iOS: not working when setting `pointerEvents` prop to `box-none` or `none`

**Describe the solution you'd like**
I dig into `Surface` component source code and I found out the `SurfaceIOS` component actually renders 2 layers of View instead of 1 on other platforms. And the `pointerEvents` prop is only forwarded to the inner layer View. After I set `pointerEvents` prop of the outer layer View to `box-none` and it was working on iOS.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
image

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

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

評価

この issue はまだ評価されていません。

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

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