問題描述:
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)渭南,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
在Flutter開發(fā)的過程中,當(dāng)我們獲取到新的數(shù)據(jù)或者數(shù)據(jù)發(fā)生變化,需要去執(zhí)行setState進(jìn)行頁面刷新的時(shí)候,經(jīng)常會(huì)出現(xiàn)不必要的子節(jié)點(diǎn)Widget也進(jìn)行了build,但實(shí)際上我們是不想讓它再次build,出現(xiàn)這些問題的典型情況是在使用FutureBuilder的時(shí)候,例如:
在上面這個(gè)示例中,如果再次調(diào)用Build方法,則會(huì)觸發(fā)httpCall()的方法。
那么怎樣才能避免不必要的部件構(gòu)建呢?
分析:
在Flutter中,Build方法的設(shè)計(jì)方式是pure/without side effects,書面意思是無副作用的/純粹的,簡單點(diǎn)理解我們可以將其含義看作不會(huì)對(duì)外部的方法或者變量產(chǎn)生影響的。這是因?yàn)樵S多外部因素能夠觸發(fā)新的小部件的構(gòu)建,例如這些情況:
但是,這也意味著Build方法可以不去觸發(fā)httpCall()的方法或者不修改任何狀態(tài)。
解決
回歸問題,當(dāng)前我們面臨的問題是Build方法造成了副作用,也就是造成了無關(guān)的Build調(diào)用麻煩。
所以,只要我們使Build方法保持純粹/無副作用,這樣就算多少次調(diào)用它,也不會(huì)對(duì)其他Widget的Build方法產(chǎn)生影響。
在上面的示例中,我們將Widget轉(zhuǎn)換為StatefulWidget,然后提取httpCall()到initState中,這樣問題就解決了
另外,還可以使一個(gè)Widget能夠在不強(qiáng)迫其子部件也構(gòu)建的情況下進(jìn)行重新構(gòu)建。
在Widget的實(shí)例保持不變時(shí);Flutter會(huì)有意識(shí)的不去重建子部件。這意味著我們可以緩存Widget樹的某些部分,以防止不必要的重新構(gòu)建。
最簡單的方法是使用const修飾構(gòu)造函數(shù):
由于const的修飾,即使調(diào)用了數(shù)百次build,DecoratedBox的實(shí)例也將保持不變。
或者你可以這樣使用以達(dá)到相同的結(jié)果:
在這個(gè)例子中,當(dāng)StreamBuilder收到新值的通知時(shí),即使StreamBuilder的Column進(jìn)行了重構(gòu),subtree也不會(huì)進(jìn)行重構(gòu)。這是因?yàn)橛捎陂]包,MyWidget的實(shí)例沒有改變。
這種模式在動(dòng)畫中經(jīng)常使用。典型的是使用AnimatedBuilder和所有的*Transition時(shí),例如AlignTransition。
我們還可以將subtree存儲(chǔ)到類的一個(gè)字段中,但是并不推薦你這樣做,因?yàn)樗鼤?huì)破壞Flutter的熱重載。
我要做的是用BottomNavigationBarItem移除/替換FAB(浮動(dòng)操作按鈕),并將其放在BottomNavigationBar的中心,并為其創(chuàng)建樣式。
為了按鈕能夠根據(jù)屏幕寬度進(jìn)行延伸變寬,用了row和expanded,expanded多大面積,按鈕就有多大面積。如果不用row,expanded會(huì)向下延伸,就不是我們要的效果了。
OutlineButton控件的child和onPressed是必須的屬性,borderSide用來自定義邊框顏色和樣式。
一. 游泳的基本詞匯
把臉埋入水中(詞組): put face in water
吐氣泡(詞組): blow bubbles
漂?。▌?dòng)詞): float
游泳(動(dòng)詞): swim, bathe
趟水(動(dòng)詞):wade
池中嬉戲: play in pool
跳水(動(dòng)詞):dive
跳入泳池:jump in pool
技巧: technique
二. 游泳的競(jìng)技比賽用詞
strokes (stroke的復(fù)數(shù))用作表示 methods of swimming 游泳方法,包括:
1.蝶泳:Butterfly 或簡稱 fly
海豚式踢腿動(dòng)作被稱為 dolphin kick (kick=踢)
2.仰泳:Backstroke, racing backstroke, 或 back crawl
踢腿動(dòng)作被稱為 淺打水:flutter kick
3.蛙泳:Breaststroke
蛙式踢腿動(dòng)作 frog kick, modified frog kick or whip kick
4.自由泳:Freestyle, front crawl 或 forward crawl
二十世紀(jì)初有兩種提高速度的發(fā)展 Australian Crawl (澳大利亞式)與 American crawl (美國式)
5.個(gè)人混合泳:Individual Medley (IM)
指一個(gè)人連續(xù)游上述四種樣式,每種姿勢(shì)距離為100,200 或400米
6.四人接力:relay
每個(gè)人的賽程叫 leg,最后一位選手被稱為anchor
三. 其他:知識(shí) 花絮
..側(cè)泳:Sidestroke
剪刀式踢腿 scissors kick
..狗爬式游泳: Dog Paddle
..爬泳:Trudgen Crawl
..“溺死的蛾子” = 通常形容人們第一次嘗試蝶泳的樣子:Drowning moth
..踏水:Treading water 不是一種姿勢(shì)。它是一套使游泳者在水中身體保持豎直的腿部動(dòng)作。
水球運(yùn)動(dòng)員常依靠它。水球:Water polo 運(yùn)動(dòng)員們:players
..同游表演:Synchronized swimming 被稱為 = 花樣游泳:water ballet 成對(duì)表演(2-8人)
..游泳道的分界線:lane lines 有時(shí)是人的“救生索” lifelines
通常不許人靠在上面的原因有四:
1)他們不結(jié)實(shí),會(huì)斷
2)救生員會(huì)認(rèn)為你有危險(xiǎn) 救生員:lifeguard
3)真正有困難的人更不容易及時(shí)扶到了
4)把它壓下去,它失去了邊界警示的功能
四.大家平時(shí)都接觸的(實(shí)用的:)
女游泳衣: swimsuit
男式游泳短褲: swimming trunks (永遠(yuǎn)用復(fù)數(shù)形式,因?yàn)橛狙潈蓷l腿)
游泳帽:swimcap
游泳鏡: swimming google 防霧: anti-fog 防紫外線鏡片: UV Protection Lens
游泳裝備: swim gear
踢水板: kickboard 雙手扶上面,腿來踢水
漂浮物: floats 綁胳膊上的
耳/鼻夾子:ear/nose clip
腳蹼:swim fins
秒表:stopwatch
(小孩子帶到水中的)泳池玩具: pool toy
穿上泳衣 (女孩):put on swimsuit (男孩):put on swimming trunks
梳子: hairbrush
淋浴(名詞): shower
香波(名詞): shampoo
洗頭(動(dòng)詞): shampoo
坐在池邊: sit on edge
從池中出來: get out of pool
池邊地滑: slippery by pool
擦干身體: dry off
穿上衣服: get dressed
游泳池: swimming pool
波浪池: wave pool
兒童池(淺水池): wading pool
水上滑梯:water slide
泳道: lane
把泳道分開的漂浮線:lane lines
環(huán)繞游泳:Circle Swim 是 游泳禮節(jié):lane etiquette 兩人以上在同一泳道,始終貼近身體右邊的泳道線,并間隔五秒的距離
不在池中方便: don't pee in pool
救生衣: life jacket
救生圈:ring buoy
救生員: lifeguard
游泳教練: swimming instructor,coach
歌名:Never Grow Up? 歌手:Taylor Swift
所屬專輯:Mother's Love: Mother's Day Songs
Your little hands wrapped around my finger
你的小手緊緊地握著我的手指
And it's so quiet in the world tonight
今晚的世界是如此的安靜
Your little eyelids flutter cause you're dreaming
你的眼皮微微顫動(dòng),顯然你已進(jìn)入夢(mèng)鄉(xiāng)
So I tuck you in and turn on your favorite nightlight
我?guī)湍闵w好被子,打開了你最喜愛的小夜燈
To you everything's funny
對(duì)你來說,世界上一切事物都如此有趣
You got nothing to regret
你從不抱怨
I'd give all I have honey
親愛的,我愿意為你付出我所擁有的一切
If you could stay like that
寶貝,如果你一直可以這樣就好了
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,不要這么快長大
Just stay this little
就這樣一直小小的
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,不要這么快長大
It could stay this simple
這樣你的世界也就會(huì)一直簡單而純潔
I won't let nobody hurt you
我不會(huì)讓任何人來傷害你
Wont let no one break your heart
更不會(huì)讓任何人讓你心碎
No one will desert you
沒有人會(huì)拋棄你
Just try to never grow up
只是試著不要長大
Never grow up
永遠(yuǎn)不要長大
You're in the car on the way to the movies
你坐在車?yán)?,在去電影院的路?/p>
And you're mortified your mama's dropping you off
你還因?yàn)槭菋寢屳d你去而感到尷尬
At 14 there's just so much you can't do
14歲的你,不是所有事情都力所能及
And you can't wait to move out
你迫不及待地搬出去
Someday and call your own shots
希望有一天闖出自己的一片天地
But don't make her drop you off around the block
但是不要讓她送你到離目的地一個(gè)街區(qū)遠(yuǎn)的地方
Remember she's getting older too
你要記得,她也在慢慢老去
And don't lose the way that you dance
也不要忘記你一邊跳舞
Around in your PJs getting ready for school
一邊穿著睡衣匆匆忙忙準(zhǔn)備上學(xué)的樣子
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,不要這么快長大
Just stay this little
就這樣一直小小的
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,不要這么快長大
It could stay this simple
這樣你的世界就會(huì)永遠(yuǎn)簡簡單單
No one's ever burned
沒有人傷害你
Nothing's ever left you scarred
沒有什么事讓你獨(dú)自害怕
Even though you want to just try to never grow up
即使你依然期待著,也請(qǐng)?jiān)囍灰敲纯扉L大吧
Take pictures in your mind of your childhood room
把童年時(shí)住過的房間像照片一樣印在記憶里
Memorize what is sounded like what your dad gets home
每當(dāng)回想起來,就好像聽到爸爸回家時(shí)的腳步聲一樣溫暖
Remember the footsteps remember the words said
一定要記住那腳步聲,那些溫柔的話
And all your little brother's favorite songs
還有所有你弟弟喜歡的歌
I just realized everything I had is someday gonna be gone
后來我才漸漸發(fā)現(xiàn),我所擁有的一切也有一點(diǎn)點(diǎn)失去的那一天
So here I am in my new apartment
就像現(xiàn)在,我在我的新公寓里
In a big city they just dropped me off
他們開車把我?guī)У竭@個(gè)大城市里
It's so much colder than I thought it would be
一切要比我想象中的更加寒冷
So I tuck myself in and turn my nightlight on
我給自己蓋好被子,打開了我的小夜燈
Wish I'd never grown up
我多么希望自己永遠(yuǎn)不會(huì)長大
I wish I'd never grown up
我真的希望自己不會(huì)長大
Oh I don't wanna grow up
天啊,我一點(diǎn)都不想長大
Wish I'd never grown up
如果我一直不曾長大該多么好
Could still be little
一直小小的
Oh I don't wanna grow up Wish I'd never grow up
我多么希望自己從來不曾長大
It could still be simple
這樣我的世界就會(huì)一直都是簡簡單單的
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,永遠(yuǎn)不要長大
Just stay this little
就這樣一直小小的
Oh darling don't you ever grow up don't you ever grow up
親愛的,你能不能不要長大,不要這么快長大
It could stay this simple
這樣你的世界就可以一直簡單而純潔
Won't let nobody hurt you
我不會(huì)讓任何人傷害你
Won't let no one break your heart
更不會(huì)讓任何人讓你心碎
And even through you want to please try to never grow up
所以即使你很期待,也請(qǐng)?jiān)囍灰敲纯扉L大
Oh Don't you ever grow up
寶貝,能不能永遠(yuǎn)不要長大
Oh Just never grow up
寶貝,就不要長大了吧
擴(kuò)展資料:
《Never Grow Up》是美國當(dāng)紅鄉(xiāng)村音樂女歌手Taylor Swift新專輯《Speak Now》中的一首歌,主要內(nèi)容是Taylor對(duì)于成長的書寫,或許是對(duì)自己過去的一部回憶錄。
創(chuàng)作背景
Taylor在2010年7月正式搬出父母的房子,開始獨(dú)立生活。她說這比起她的朋友們來說要晚一些,她的同齡人們多是在十八九歲上大學(xué)時(shí)就開始獨(dú)立。
在美國,多數(shù)的年輕人都是在這個(gè)年紀(jì)就開始獨(dú)立生活了,因此Taylor20歲了才搬出家門算是晚了。記得有一次看明珠臺(tái)的笑笑小電影,播了一個(gè)小短片,講有個(gè)男人三更半夜在家里扮鬼嚇?biāo)膵寢尅?/p>
片段很好笑,但是播完后主持人說了一句:其實(shí)這個(gè)視頻最恐怖的地方不在于這個(gè)媽媽在家里被兒子扮鬼嚇到,而是她的兒子三四十歲了竟然還和媽媽一起住。
事實(shí)上,盡管搬出父母家,但Taylor很多時(shí)間都是和父母呆在一起的。所以搬出家門并沒有讓Taylor和爸爸媽媽缺少相處的機(jī)會(huì)。因?yàn)楣ぷ鞯年P(guān)系,Taylor和父母仍然保持著十分親密的關(guān)系。
歌曲名:A Walk Outside
歌手:Butterfly Boucher
專輯:Flutterby
Butterfly Boucher
A Walk Outside
Flutterby
Which came first
The love or the love song?
Which is more important
In the long run?
Do you really want to talk about it?!
Take if to the back verada
Have a drink and talk around it
In the end it doesn't matter
In the end we all go home
I thought about it for a minute
Music's in the kiss we hold
Which came first
The love or the love song?
I'm sorry
I guess I was wrong
Let us find the tune without a sound
Find a place that no one's found
Pick it up and put it down
In the end it doesn't matter
In the end they all go home
I thought about it for a minute
Music's in the kiss we hold
Music is a walk outside
Ahhh ahhh... ahhh ahhh...
Clever lines and clever lyrics
All boil down to what goes in them
If they find life then so do we...aahhh...
...yeah ah ha I think we're alive
Music is a walk outside
think it about for a minute
in the end we all go home
Music's in the things that matter
Hear it in the kiss we hold
Music is a walk outside
Which came first
The love or the love song?
Which came first
The love or the love song?
Which came first
The love or the love song?
Which came first
The love or the love song?