2017-06-23 80 views
0

TLDR;反應原生深度嵌套覆蓋

什麼是覆蓋整個屏幕覆蓋層的最佳方法,從組件層次結構內部的某個位置?

有一個叫做react-native-overlay的lib,它似乎被放棄了。它也覺得這應該可以通過核心RN功能來解決。


只是爲了提供一些背景知識;基本上,這個想法是模仿一個像Facebook那樣的應用程序,項目菜單,請參閱下圖。基本上,每個項目應該有它自己的菜單按鈕。當點擊菜單按鈕時,出現一個菜單。點擊菜單外應關閉菜單。

現在;

  1. AFAIK,沒有窗口可以添加點擊處理程序來檢測點擊是否在菜單區域之外完成。因此,我的想法是創建覆蓋整個屏幕的覆蓋圖,以便能夠捕獲水龍頭。

  2. 什麼是最好的方式來創建這樣的覆蓋? position: 'absolute'僅相對於父組件,因爲除非明確指定,否則每個組件都有position: 'relative'

一個選項是添加一個onLayout處理程序,然後將頂部/左側設置爲負值以補償該組件的偏移量,但這會感到駭人聽聞。

回答