Flutter Web網(wǎng)站之ScrollView+GridView優(yōu)化

往期

上期回顧

上期我們做了簡(jiǎn)單的分包處理崖瞭,然后就用了SingleChildScrollView+GridView為主要的框架實(shí)現(xiàn)了網(wǎng)格布局以及上下滑動(dòng)效果狂巢,Chrome Web以及原生體驗(yàn)并沒有發(fā)現(xiàn)什么問題,可在微信的Web瀏覽器中發(fā)現(xiàn)根本滑不動(dòng)书聚。這是什么問題呢唧领?接下來會(huì)揭曉。

本期內(nèi)容

本期主要解決App內(nèi)置瀏覽器中滑動(dòng)不順暢的問題

搜索問題

順著我們的問題雌续,在google中搜索flutter web gridview inside singlechildscrollview scroll 等關(guān)鍵字

如圖所示
我選擇Stack Overflow的解答斩个,點(diǎn)進(jìn)去看到兩個(gè)答案如圖

第一個(gè)答案我們已經(jīng)在使用了,這個(gè)是禁止掉了GridView的滑動(dòng)效果來實(shí)現(xiàn)將滑動(dòng)的事件處理交給SingleChildScrollView驯杜。很明顯我們要用第二種方案實(shí)現(xiàn)CustomScrollView萨驶。

看文檔

官方文檔
中文文檔
建議以官方文檔為主,看不懂的話用中文文檔輔助理解艇肴,因?yàn)楣俜轿臋n一直保持最新腔呜,中文由于維護(hù)的原因會(huì)有延遲叁温。不啰嗦,我來給你解釋下核畴。
CustomScrollView是一個(gè)負(fù)責(zé)滑動(dòng)管理的容器膝但,所有的子View統(tǒng)一實(shí)現(xiàn)Scrollable,如果你還用本身具有滑動(dòng)處理的GridView谤草,肯定是不行的跟束,所以它就為我們提供了一整套的組件供我們使用。

  • SliverList, 線性列表.
  • SliverFixedExtentList, 和上面都屬于List丑孩,但高度固定冀宴。
  • SliverGrid, 網(wǎng)格列表
  • SliverPadding, 為子View加一個(gè)內(nèi)邊距
  • SliverAppBar, 帶有AppBar的頭部視圖
  • ScrollNotification and NotificationListener, 可用于查看滾動(dòng)位置,而無需使用 ScrollController.
  • IndexedSemantics, 意思是為子View添加一個(gè)索引温学,用來通知滾動(dòng)位置略贮。
    注意:目前為止CustomScrollView的第一層子View必須是以上組件的構(gòu)成,官方文檔還少寫了一個(gè)SliverToBoxAdapter仗岖,它同樣是針對(duì)CustomScrollView來實(shí)現(xiàn)的特殊組件逃延,看它的構(gòu)造函數(shù)只有一個(gè)Key和child,其實(shí)他就是一個(gè)實(shí)現(xiàn)了CustomScrollView Scrollable的一個(gè)容器轧拄,用來作為CustomScrollView的第一層子View揽祥。大致對(duì)它有了認(rèn)識(shí)之后,我們來改造一下我們?cè)瓉淼膶?shí)現(xiàn)檩电。

新的實(shí)現(xiàn)

SingleChildScrollView替換CustomScrollView拄丰,Column去掉,將原來的_buildHead包一層SliverToBoxAdapter俐末。將之前的GridView替換為SliverGrid愈案,他倆的區(qū)別就是在于SliverGrid去除了GridView自身的滑動(dòng)處理,交給了上一層鹅搪,屬性用法基本一致站绪,不用大動(dòng)干戈。整體修改起來比較簡(jiǎn)單丽柿。

替換的結(jié)果

結(jié)果還是不錯(cuò)的恢准,在App內(nèi)置Web中也能流暢的滑動(dòng)了,通過這次學(xué)到甫题,以后遇到頁面復(fù)雜的布局馁筐,又需要統(tǒng)一的滑動(dòng)處理的時(shí)候,就要考慮使用CustomScrollView坠非,你學(xué)到了嗎敏沉?請(qǐng)你忘掉SingleChildScrollView+ListView、GridView的使用吧。

源碼

請(qǐng)轉(zhuǎn)github代碼查看完整實(shí)現(xiàn)

ToDo

該部分內(nèi)容后期慢慢給大家更新盟迟,請(qǐng)客觀不要著急秋泳,當(dāng)然你可以參與進(jìn)來,私聊我就行哦攒菠。

  • 示例部準(zhǔn)備下期實(shí)現(xiàn)迫皱,跳轉(zhuǎn)至詳情頁面,并展示用例辖众。源碼已經(jīng)完成點(diǎn)擊即可跳轉(zhuǎn)至github卓起。
  • Tags 部分下期實(shí)現(xiàn),這部分也需要新的UI展現(xiàn)凹炸,標(biāo)簽的功能類似與搜索戏阅,提供更快捷的方式查找想要的功能。
  • 留言功能設(shè)計(jì)啤它,在你們使用過程中肯定會(huì)有不同的建議奕筐,有了這個(gè)功能就能知道你們的心聲,所以這也是我們需要的實(shí)現(xiàn)的一個(gè)功能蚕键。
  • 優(yōu)秀的項(xiàng)目推薦救欧,有很多優(yōu)秀的項(xiàng)目等待著我們?nèi)グl(fā)現(xiàn)衰粹,我一個(gè)人的能力有限锣光,如果有更多的人來推薦,會(huì)不斷豐富我們的Jetpack內(nèi)容铝耻。
  • 博客誊爹,這里考慮到有很多優(yōu)秀的大佬,寫過相關(guān)技術(shù)博客瓢捉,幫你尋找最優(yōu)秀的資源频丘。功能設(shè)計(jì)如下圖新增按鈕。

結(jié)束

網(wǎng)站jetpack.net.cn泡态,歡迎常來搂漠,也希望能在你學(xué)習(xí)Flutter的道路上提供一丟丟的幫助。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末某弦,一起剝皮案震驚了整個(gè)濱河市桐汤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌靶壮,老刑警劉巖怔毛,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異腾降,居然都是意外死亡拣度,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抗果,“玉大人筋帖,你說我怎么就攤上這事〗颜牛” “怎么了幕随?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)宿接。 經(jīng)常有香客問我赘淮,道長(zhǎng),這世上最難降的妖魔是什么睦霎? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任梢卸,我火速辦了婚禮,結(jié)果婚禮上副女,老公的妹妹穿的比我還像新娘蛤高。我一直安慰自己,他們只是感情好碑幅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布戴陡。 她就那樣靜靜地躺著,像睡著了一般沟涨。 火紅的嫁衣襯著肌膚如雪恤批。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天裹赴,我揣著相機(jī)與錄音喜庞,去河邊找鬼。 笑死棋返,一個(gè)胖子當(dāng)著我的面吹牛延都,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播睛竣,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼晰房,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了射沟?” 一聲冷哼從身側(cè)響起殊者,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎躏惋,沒想到半個(gè)月后幽污,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡簿姨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年距误,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了簸搞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡准潭,死狀恐怖趁俊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情刑然,我是刑警寧澤寺擂,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站泼掠,受9級(jí)特大地震影響怔软,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜择镇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一挡逼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腻豌,春花似錦家坎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至苏携,卻和暖如春做瞪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兜叨。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工穿扳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衩侥,地道東北人国旷。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像茫死,于是被迫代替她去往敵國(guó)和親跪但。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348