ReactNative中的Position研究

最近做一個(gè)公司的項(xiàng)目,其中有個(gè)需求,類(lèi)似于Android中的下拉菜單,這個(gè)就涉及到了圖層的問(wèn)題,ReactNative中,與之相關(guān)的是positon,下面分幾種情況討論

一、大前提:父View不是position定位

1.上面的view和下面的view都是position定位,如下圖:

對(duì)應(yīng)的樣式如下
效果圖

可見(jiàn),都用了position后,在定位重復(fù)時(shí),下面的view會(huì)覆蓋上面的view(小神經(jīng)被我的大學(xué)在山東覆蓋),這說(shuō)明,下面的view圖層更高。

2.上面的view不是,下面的是絕對(duì)定位。把小神經(jīng)的Position:absolute去掉,自然top 和left也去掉。效果圖如下:

可以看到,“我的大學(xué)在山東” 的絕對(duì)定位是以其直接父view 為參考點(diǎn)定位的,而不是整個(gè)的窗口。如果去掉top 和left,如下圖:

效果圖如下:

可以看到就好像沒(méi)有加Position:absolute 定位一樣,但此時(shí)圖層是降了的,稍后再講。

3.上面的view是絕對(duì)定位,下面的不是。在“我的大學(xué)在山東” 下面加上一個(gè)view,如下圖:

效果圖如下

可以看到,“我愛(ài)你” 這個(gè)元素,表現(xiàn)的好像“我的大學(xué)在山東” 不存在一樣,覆蓋了它(加上背景色更顯著). 此時(shí),加上top:0 和left:20定位


看來(lái),這個(gè)不影響后面的元素。

在這個(gè)大前提下,我們來(lái)看看,justifyContent 和alignItems 和alignSelf 的影響。

在這里,我的"閆雅"用了alignSelf:'flex-end',這個(gè)導(dǎo)致,效果如下:


也就是說(shuō),“閆雅”這個(gè)不是占據(jù)一整行了(沒(méi)有加width屬性),加上背景色,只會(huì)顯示包容“閆雅”二字這么個(gè)長(zhǎng)度的著色,然后我給"閆雅"加上width:width屬性,并設(shè)置背景色。布局和樣式如下:



效果如下:

可以看到,雖然"我的大學(xué)在山東" 用了絕對(duì)定位,但因?yàn)槠湓?閆雅"的 布局下面,所以圖層更高。

另外設(shè)置了Position屬性的view alignSelf 不起作用,alignItems 和justifyContent對(duì)其子元素起作用。其父view 的alignItems 和justifyContent 對(duì)其不起作用。

總結(jié):在ReactNative 中,當(dāng)view設(shè)置了position屬性后,圖層變低,但是比其前面的圖層高。子view的圖層高于父view的圖層。

如果要實(shí)現(xiàn)彈出菜單覆蓋當(dāng)前頁(yè)面部分內(nèi)容,可以用以上知識(shí)做,也可以把菜單的margin 屬性設(shè)置為負(fù)的,滿足條件顯示即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Core Animation其實(shí)是一個(gè)令人誤解的命名。你可能認(rèn)為它只是用來(lái)做動(dòng)畫(huà)的,但實(shí)際上它是從一個(gè)叫做Laye...
    小貓仔閱讀 3,980評(píng)論 1 4
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺ios動(dòng)畫(huà)全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,698評(píng)論 6 30
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,273評(píng)論 5 13
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,192評(píng)論 1 92
  • 你有因?yàn)橐粋€(gè)人多次說(shuō)話不算數(shù)而累積失望么?失望到一定程度你已經(jīng)累的不想說(shuō)話了,也覺(jué)得不再想聽(tīng)他說(shuō)話了。 ...
    簡(jiǎn)筱曉閱讀 650評(píng)論 0 0

友情鏈接更多精彩內(nèi)容