ReactNative FlatList SectionList填坑

摘要:

主要寫下剛學(xué)RN時的一點心得桥氏。學(xué)習(xí)一個新語言温峭,首先當(dāng)然看官方文檔了,這里就不說了字支。主要說下看完文檔之后該如何上手凤藏。
主要說兩個:

  1. 路由
  2. 頁面當(dāng)中主要的兩個組件FlatList、SectionList

react-native-router-flux

  1. router 下第一層如果是Scene,必須設(shè)置key='root',因為需要有一個容器來切換Scene堕伪,可以使用Stack包裝
  2. 默認(rèn)第一個Scene為默認(rèn)顯示,initial和init屬性是不一樣的

List應(yīng)該是項目中用的比較多的組件蹄梢,所以就研究了下RN下的兩個列表組件FlatList和SectionList
任何問題都是從需求中發(fā)現(xiàn)的,下面就從兩個簡單需求中解決FlatList和SectionList幾個常見問題

FlatList

需求:在區(qū)域A中顯示區(qū)域B的FlatList富俄,如果內(nèi)容少就居中顯示在區(qū)域A中,如果內(nèi)容多就再區(qū)域A中滾動顯示

Flatlist
FlatList內(nèi)容樣式問題

如果要設(shè)置FlatList內(nèi)容的樣式需要在contentContainerStyle中設(shè)置

設(shè)置FlatList高度問題
  1. FlatList等類似容器類的空間幕袱,默認(rèn)是有flex:1屬性的,再次設(shè)置flex是不起作用的悠瞬。
  2. FlatList contentContainerStyle不能設(shè)置flex:1和固定高度,否則不能滑動浅妆。
  3. 如果父容器flex-direction為column時想要設(shè)置FlatList高度必須在外層包裹一層View,設(shè)置View的高度
FlatList內(nèi)容少時凌外,居中問題

需要在FlatList外再包一層View包裹FlatList高度,因為flex是0对省,所以View的高度是FlatList的內(nèi)容高度

FlatList寬度占滿屏幕問題

想要設(shè)置寬度需要設(shè)置View的alighSelf為stretch晾捏。水平情況也是同樣的道理

SectionList

需求:實現(xiàn)類似微信錢包這種帶標(biāo)題的橫向列表哀托,默認(rèn)SectionList不支持,這里介紹三種方式

SectionList
方案一:(缺點:有警告 flex-wrap is not support with the virtualizedlist. 目前github issues未解決)
  1. 設(shè)置contenContainerStyle flex-direction: row flex-wrap: wrap
  2. 設(shè)置sectionHeader寬度為屏幕寬度
  3. 如需子元素等寬胖齐,設(shè)置子元素寬度
方案二:
  1. renderItem void
  2. renderSectionHeader 用FlatList,設(shè)置FlatList header numColumns
方案三:
  1. 更改數(shù)據(jù)源补履,item數(shù)據(jù)為List
  2. renderItem 用FlatList,設(shè)置FlatList header numColumns
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末箫锤,一起剝皮案震驚了整個濱河市谚攒,隨后出現(xiàn)的幾起案子氛堕,更是在濱河造成了極大的恐慌,老刑警劉巖括儒,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乱灵,死亡現(xiàn)場離奇詭異,居然都是意外死亡规婆,警方通過查閱死者的電腦和手機蝉稳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嗡髓,“玉大人收津,你說我怎么就攤上這事〕づ酰” “怎么了吻贿?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肌割。 經(jīng)常有香客問我,道長弥奸,這世上最難降的妖魔是什么奋早? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮摩渺,結(jié)果婚禮上剂邮,老公的妹妹穿的比我還像新娘。我一直安慰自己绰姻,他們只是感情好引瀑,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布憨栽。 她就那樣靜靜地躺著,像睡著了一般屑柔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上死陆,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天唧瘾,我揣著相機與錄音,去河邊找鬼领虹。 笑死菌羽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的注祖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼肚菠,長吁一口氣:“原來是場噩夢啊……” “哼罩缴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起箫章,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤檬寂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昼伴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镣屹,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年持舆,在試婚紗的時候發(fā)現(xiàn)自己被綠了吏廉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惰许。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖佩伤,靈堂內(nèi)的尸體忽然破棺而出晦毙,到底是詐尸還是另有隱情,我是刑警寧澤孤荣,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站钱豁,受9級特大地震影響疯汁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谤碳,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一蜒简、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臭蚁,春花似錦讯赏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至衬浑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間放刨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工助币, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留眉菱,地道東北人掉分。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓克伊,卻偏偏與公主長得像愿吹,于是被迫代替她去往敵國和親季春。 傳聞我的和親對象是個殘疾皇子载弄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • CSS 3中彈性盒布局的最新版概述 在CSS 3中宇攻,CSS Flexible Box模塊為一個非常重要的模塊倡勇,該模...
    吾名無雙閱讀 1,221評論 0 5
  • 盒子模型 盒子模型是CSS布局的基礎(chǔ)妻熊,CSS假定每個元素都會生成一個或多個矩形框,每個元素框中心都有一個內(nèi)容區(qū)(c...
    勇敢的_心_閱讀 13,869評論 2 41
  • CSS 是什么 css(Cascading Style Sheets)帆喇,層疊樣式表亿胸,選擇器{屬性:值;屬性:值}h...
    崔敏嫣閱讀 1,472評論 0 5
  • 轉(zhuǎn)載:http://www.cocoachina.com/swift/20161201/18198.html 前言...
    F麥子閱讀 4,297評論 2 8
  • 欲飛身已倦,欲辯已忘言突颊。 飛鴻逐日暖,梅綻喜春寒潘悼。 英雄惜遲暮洋丐,流水妒紅顏。 紅爐映雪日挥等,詩酒話流年友绝。
    醉愛一片藍(lán)閱讀 302評論 2 8