React Native 如何實(shí)現(xiàn)絕對(duì)定位的loading?

React Native的初學(xué)者應(yīng)該了解RN支持且只支持Flex布局。Flex布局相對(duì)于Android來(lái)說(shuō)就是LinearLayout線(xiàn)性布局。那么線(xiàn)性布局怎樣實(shí)現(xiàn)一個(gè)垂直居中的loading呢?

loading應(yīng)該是在三維z軸高于普通視圖的,用絕對(duì)布局實(shí)現(xiàn)的,那么RN支持絕對(duì)布局嗎? 答案:是的,RN支持。使用position: 'absolute'來(lái)實(shí)現(xiàn)。

RN中的position屬性的默認(rèn)值是relative。只支持兩個(gè)值relative | absolute。了解CSS的同學(xué)對(duì)它應(yīng)該很熟悉,relative指的是相對(duì)定位,配合top, right, bottom, left四個(gè)方位屬性,加上z-index堆疊順序來(lái)對(duì)一個(gè)元素進(jìn)行相對(duì)于自己左上角為原點(diǎn)的定位。比如:

相對(duì)布局示例

相對(duì)定位的元素沒(méi)有脫離文檔流,依然占據(jù)著原來(lái)的空間,不影響周邊元素的位置,如果與其他元素相遇,按照z-index來(lái)覺(jué)得誰(shuí)顯示在“上面”而被我們看到,這個(gè)方式可以理解為“靈魂出竅”,“靈魂”展示在那里,但“竅”還占據(jù)著原有的空間。對(duì)應(yīng)上面的示例中,盡管“積分商城”這個(gè)元素采用相對(duì)定位進(jìn)行了移動(dòng),但是后面的文案位置依然沒(méi)有受到影響。

absolute即絕對(duì)定位,它是相對(duì)于父級(jí)元素的左上角為原點(diǎn)來(lái)定位。
(補(bǔ)充:CSS中是相對(duì)最近的一個(gè)非static的元素作為父級(jí),但是RN沒(méi)那么復(fù)雜,只是相對(duì)于它的父級(jí),因?yàn)樯衔奶岬?,RN中的position屬性的默認(rèn)值是relative。只支持兩個(gè)值relative | absolute。)

絕對(duì)定位的元素不會(huì)占據(jù)原有的流式空間,后面的元素會(huì)“補(bǔ)上來(lái)”,比如,我們將之前的示例中的relative改成absolute, 看看后面的文案是否收到影響:


了解position以后,我們就可以使用其做一個(gè)絕對(duì)定位,垂直居中的loading了。垂直居中怎樣實(shí)現(xiàn)呢?比如一個(gè)寬高為,就可以這樣寫(xiě):

    loading:{
        width: 100,
        height: 100,
        position: 'absolute',
        top: '50%',
        left: '50%',
        marginTop: -50,
        marginLeft: -50
    }

loading示例

topmarginTop這樣的配合方式就不多說(shuō)了,要注意的是這個(gè)元素的父級(jí)最好是頁(yè)面最外層或者是高度100%的元素。
如果是一個(gè)不定高度的ScrollView,可以將loading至于ScrollView同級(jí),然后外邊套一個(gè)View的父級(jí)就OK了。

本文以loading為例,主要介紹了絕對(duì)定位與Flex布局的結(jié)合使用,實(shí)際項(xiàng)目中建議使用原生的loading組件。

延伸思考:

  1. RN中,如何禁止loading,蒙層下面的點(diǎn)擊事件?
  2. 不定寬高的元素怎樣絕對(duì)居中?
最后編輯于
?著作權(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)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,199評(píng)論 1 92
  • 收聽(tīng)音頻,戳鏈接,舊號(hào)itclan已暫停使用,歡迎關(guān)注微信itclanCoder公眾號(hào)可收聽(tīng)更多音頻 前言 關(guān)于網(wǎng)...
    itclanCoder閱讀 8,363評(píng)論 3 30
  • CSS 是什么 css(Cascading Style Sheets),層疊樣式表,選擇器{屬性:值;屬性:值}h...
    崔敏嫣閱讀 1,582評(píng)論 0 5
  • 最近流行一首歌《春節(jié)自救手冊(cè)》,歌曲描繪了年關(guān)逼近。許多單身漢糾結(jié)的問(wèn)題,即想回家看看父母。會(huì)會(huì)朋友。又怕自己招架...
    雪輝心語(yǔ)閱讀 224評(píng)論 0 0
  • In me, past, present, future meet,于我,過(guò)去、現(xiàn)在和未來(lái), To hold lo...
    小蔥大蝦閱讀 322評(píng)論 0 1

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