封裝的彈窗必須要靈活,滿(mǎn)足實(shí)際開(kāi)發(fā)中的大部分彈窗,比如有無(wú)標(biāo)題、有無(wú)內(nèi)容、有無(wú)關(guān)閉按鈕、有無(wú)操作按鈕以及按鈕的排列樣式等需要滿(mǎn)足多元化~
創(chuàng)新互聯(lián)從2013年成立,先為潁東等服務(wù)建站,潁東等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為潁東企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
共有四個(gè)文件: ww_dialog.dart 、 ww_middle_bottom_dialog_widget.dart 、 ww_top_dialog_widget.dart 、 ww_top_dialog_item_data.dart
彈窗主要調(diào)用類(lèi),主要包含: WWDialog.showTopDialog 、 WWDialog.showMiddleDialog 、 WWDialog.showBottomDialog
支持自定義配置背景顏色、字體大小、顏色、統(tǒng)一回調(diào)、自定義按鈕、單獨(dú)回調(diào)、是否帶三角標(biāo)志、任意位置、最大高度、超過(guò)可以滑動(dòng)等~
部分展示效果:
支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標(biāo)題、內(nèi)容、按鈕支持完全自定義、點(diǎn)擊的回調(diào)等~
部分展示效果:
支持配置背景顏色、字體大小、顏色、字重、按鈕排列方式、標(biāo)題、內(nèi)容、按鈕支持完全自定義、點(diǎn)擊的回調(diào)等~
部分展示效果:
中間、底部彈窗的彈窗widget
頂部彈窗的彈窗widget
頂部彈窗的數(shù)據(jù)源數(shù)據(jù)模型item
github傳送門(mén):
你說(shuō)的是哪一個(gè)小馬?我可以和你說(shuō)幾個(gè)重要的角色。
六主角(Mane Six)
Twilight Sparkle(紫悅/暮光閃閃)代表魔法和友誼的公主
紫悅/暮光閃閃(2張)
對(duì)話配音:Tara Strong
唱歌配音:Rebecca Shoichet
國(guó)語(yǔ)配音:洪海天
日語(yǔ)配音:澤城美雪
昵稱(chēng):暮暮
性別:女
生日:1月6日
星座:摩羯座
種族:獨(dú)角獸→天角獸(S3E13)
寵物:公貓頭鷹 Owlowiscious(奧羅威)
在和諧之元中代表“魔法”。
【反面性格為傲慢和渴望權(quán)力】
介紹:
薰衣草紫身體、深藍(lán)色加紫和玫紅色鬃毛、寶石紫色眼睛的小馬??蓯?ài)標(biāo)志為一顆紫紅色大六角星覆蓋著一顆白色六角星,被五顆白色小六角星包圍的印記。
在宇宙公主的天才皇家獨(dú)角獸魔法學(xué)院就讀,學(xué)習(xí)魔法知識(shí)。認(rèn)真、自律、有常識(shí),管理能力極佳,喜歡閱讀書(shū)籍,懂得多數(shù)小馬都不懂的歷史和傳說(shuō),魔法能力十分強(qiáng)大,可以使用許多強(qiáng)力的魔法,從幼駒時(shí)代已經(jīng)表現(xiàn)出驚人的魔法天賦。在入學(xué)考試的時(shí)候因?yàn)樵茖毜牟屎缫舯ЯΡ┳叱晒Ψ趸鳊埖?,被宇宙公主發(fā)現(xiàn)她的魔法潛力,將她收為直屬學(xué)生。其孵化出來(lái)的小龍(也就是穗龍)之后一直伴隨在其身邊當(dāng)其助手,負(fù)責(zé)寫(xiě)信、寄信的工作。
因宇宙公主派遣其至小馬谷監(jiān)督夏日祭典的工作,在過(guò)程中認(rèn)識(shí)許多新朋友,并且利用友誼的魔法解決了夢(mèng)魘之月事件,至此之后便接受宇宙公主的指示,留在小馬谷通過(guò)日常生活學(xué)習(xí)一些道理,被要求每周寫(xiě)一封信匯報(bào)。在S3E13中因完善了白胡子星璇的咒語(yǔ)被賦予了翅膀成為天角獸,S4E26中被授予稱(chēng)號(hào)“友誼公主”。在S6紫悅當(dāng)上了風(fēng)雪之心的姑姑,并成為星光熠熠的友誼導(dǎo)師。在S8開(kāi)設(shè)了友誼學(xué)院,學(xué)生有各種種族。S9接任管轄小馬利亞。
名字由twilight(暮光)和sparkle(閃閃)組成。角色設(shè)計(jì)靈感來(lái)源于G1的Twilight,而暮暮的媽媽Twilight Velvet 的造型設(shè)計(jì)也來(lái)源于同一匹小馬。
Rainbow Dash(云寶/云寶黛西)
云寶/云寶黛西
配音:Ashleigh Ball
國(guó)語(yǔ)配音:范楚絨(S1-S5)、嚴(yán)麗禎(S6-S9)?[11]
日語(yǔ)配音:橘田泉
性別:女
生日:4月14日
星座:白羊座
種族:飛馬
寵物:公陸龜 Tank(坦克)
在和諧之元中代表“忠誠(chéng)”。
【反面性格為背叛(未達(dá)到變節(jié)的程度)】
介紹:
天藍(lán)色身體,彩虹色鬃毛,瑰紅色眼睛的小馬。可愛(ài)標(biāo)志為一朵云下面有一道彩虹閃電。
外向、勇敢、愛(ài)笑、愛(ài)惡作劇,有些男孩子氣(甚至許多觀眾剛看到她時(shí)誤以為她是男生)。擅長(zhǎng)飛行。飛行時(shí)尾端會(huì)拖著一道彩虹,另外就算不用翅膀奔跑速度也很快(但一般情況下只要可以飛就不會(huì)走路)。與醒目露露情同手足??梢杂贸羲亠w行產(chǎn)生sonic rainboom(彩虹音爆),不喜歡做任何的美容與保養(yǎng)(但S6做了一次修蹄)。在S6中成為閃電飛馬隊(duì)員。
和碧琪是一起惡作劇的好友。在小時(shí)候?yàn)榱藥腿崛岫渌娘w馬比賽飛行,并使出彩虹音爆??梢哉f(shuō),如果她當(dāng)初沒(méi)使用出彩虹音爆的話其他五只小馬就不會(huì)找到自己真正的天賦??蓯?ài)標(biāo)志出現(xiàn)的契機(jī)為"忠于自我"。
狂熱地崇拜無(wú)畏天馬(Daring Do)。
名字由rainbow (彩虹)和dash(沖刺)組成。
Applejack(蘋(píng)果嘉兒/蘋(píng)果杰克)
蘋(píng)果嘉兒/蘋(píng)果杰克
配音:Ashleigh Ball
國(guó)語(yǔ)配音:李敏妍
日語(yǔ)配音:徳井青空
昵稱(chēng):阿杰
性別:女
生日∶7月31日
星座:獅子座
種族:陸馬
寵物:雌犬 Winona(薇諾娜/維蘿娜)
在和諧之元中代表“誠(chéng)實(shí)”。
【反面性格為欺騙(未達(dá)到狡猾的程度)】
介紹:
橙黃色身體,金色鬃毛,翡翠綠眼睛,頭戴牛仔帽小馬。可愛(ài)標(biāo)志為三顆蘋(píng)果,是小馬駒系列第一代就有的元老小馬。
擅長(zhǎng)運(yùn)動(dòng),會(huì)用套索做特技,力氣十分大。后蹄的力氣比前蹄大,很喜歡蘋(píng)果,會(huì)做各種蘋(píng)果料理。蘋(píng)果嘉兒的家庭成員姓名幾乎都與蘋(píng)果有關(guān),在甜蘋(píng)果園工作,養(yǎng)了一些會(huì)說(shuō)話的動(dòng)物。和蘋(píng)果麗麗關(guān)系很好,束起來(lái)的尾巴可當(dāng)作球棒或刷子用,隨身攜帶套索。
蘋(píng)果嘉兒小時(shí)候非常向往都市生活,因而借住在遠(yuǎn)方的親戚家,但是她發(fā)現(xiàn)都市的生活不適合她,直到看到云寶發(fā)出的彩虹音爆之后才找到自己真正的歸宿,此時(shí)她的可愛(ài)標(biāo)志就出現(xiàn)了。可愛(ài)標(biāo)志出現(xiàn)的契機(jī)為"對(duì)自己誠(chéng)實(shí)"。
名字來(lái)源為美國(guó)一種叫做“蘋(píng)果白蘭地”的酒。
Rarity(珍奇/瑞瑞/瑞爾提)
珍奇/瑞瑞/瑞爾提
對(duì)話配音:Tabitha St. Germain
唱歌配音:Kazumi Evans
國(guó)語(yǔ)配音:張安琪(S1-S3)、王燕華(S4-S9)?[11]
日語(yǔ)配音:佐佐木未來(lái)
性別:女
星座:處女座
種族:獨(dú)角獸
寵物:母貓 Opalescence(歐泊/澳寶)
在和諧之元中代表“慷慨”。
【反面性格為貪婪(未達(dá)到反派的貪婪程度)】
介紹:
白色身體、藍(lán)紫色鬃毛、寶藍(lán)色眼睛的小馬。可愛(ài)標(biāo)志一般情況下為三顆菱形藍(lán)寶石。有時(shí)人們看到RR的可愛(ài)標(biāo)志是字母“R”,是由于RR穿了白色的袍子。
魔法不強(qiáng),但擅長(zhǎng)精細(xì)蹄工藝與服裝設(shè)計(jì),是一位流行設(shè)計(jì)師。向往坎特洛特,希望自己能嫁給貴族成為上流名馬,擁有自己的服飾店。喜歡幫其他小馬穿搭她自己設(shè)計(jì)的服裝,有潔癖,無(wú)法忍受凌亂或骯臟的事物,但是必要時(shí)不介意弄臟自己。淑女,社交女王,總試著讓自己成為注目的焦點(diǎn)。
珍奇在小時(shí)候?yàn)榱藢W(xué)校表演的服裝而煩惱時(shí),她的角運(yùn)用魔力將她帶到一塊巖石前。正當(dāng)她質(zhì)疑角為什么帶她去找一顆普通的巖石的時(shí)候,巖石被彩虹音爆的震波給震了開(kāi)來(lái),露出里面埋藏的寶石。就在珍奇大方地將這些寶石用在道具服上面時(shí)她的可愛(ài)標(biāo)志就出現(xiàn)了??蓯?ài)標(biāo)志出現(xiàn)的契機(jī)為"對(duì)他人慷慨"。
名字rarity原意為“稀有”
Fluttershy(柔柔/小蝶/芙蘿珊)
柔柔/小蝶/芙蘿珊
配音:Andrea Libman
國(guó)語(yǔ)配音:羅玉婷(S1-S5)、王曉彤(S6-S9)?[11]
日語(yǔ)配音:加藤英美里
性別:女
星座:雙魚(yú)座
種族:飛馬
寵物:公兔Angel(安吉爾/天使兔)(寵物之中的主角,出場(chǎng)率極高還擔(dān)任過(guò)幾次主要角色)
在和諧之元中代表“善良”。
【反面性格為惡意(未達(dá)到惡毒的程度)】
介紹:
米黃色身體、淡粉色色鬃毛、藍(lán)綠色眼睛的小馬,長(zhǎng)相漂亮,個(gè)性膽小、內(nèi)向、善良,說(shuō)話總是很小聲,聲音甜美??蓯?ài)標(biāo)志為三只粉紅翅膀的蝴蝶。
小時(shí)候非常不擅長(zhǎng)飛行,在云寶為她而舉辦的飛行比賽中不慎掉落到可愛(ài)標(biāo)志附近的森林。在這里她很快就發(fā)現(xiàn)了自己善于并喜歡跟小動(dòng)物接觸,她的可愛(ài)標(biāo)志就出現(xiàn)了。可愛(ài)標(biāo)志出現(xiàn)的契機(jī)為"對(duì)他人釋出善意"。目前居住在小馬谷邊界的地方永恒自由森林附近。在S7E5中為動(dòng)物們建造了一個(gè)棲息地。
名字由flutter(飄揚(yáng))和shy(害羞)組成。
Pinkie Pie(碧琪/萍琪派)
碧琪/萍琪派
對(duì)話配音:Andrea Libman
唱歌配音:Shannon Chan-Kent
國(guó)語(yǔ)配音:李曄
日語(yǔ)配音:三森鈴子
性別:女
生日:5月3日
星座:金牛座
種族:陸馬
寵物:公鱷魚(yú) Gummy(嘎米/軟糖)
在和諧之元中代表“樂(lè)觀”。
【反面性格為消極(未達(dá)到悲觀的程度)】
介紹:
粉色身體,桃紅色鬃毛、天藍(lán)色眼睛的小馬。可愛(ài)標(biāo)志為兩顆藍(lán)氣球夾帶一顆黃氣球。
十分積極樂(lè)觀,是六只小馬中的開(kāi)心果。個(gè)性開(kāi)朗、活潑、積極、樂(lè)觀,擅?;?,喜愛(ài)惡作劇和唱歌,劇中大部分的曲目都是她自編自唱的,有著超乎常人的精力,走路總是一跳一跳的,喜歡甜食,喜歡粉紅色,擅長(zhǎng)制作甜點(diǎn),而且口味獨(dú)特,認(rèn)識(shí)所有小馬谷的小馬。
能在任何時(shí)候、任何地點(diǎn)舉辦派對(duì),擁有秘密武器“派對(duì)大炮”,轟一下就可以瞬間把場(chǎng)地布置成派對(duì)。有時(shí)會(huì)穿著不知道從哪邊來(lái)的cosplay服裝出場(chǎng)??梢砸越跛查g移動(dòng)的方式到達(dá)任何地方,還精通各種樂(lè)器,有很強(qiáng)的第六感,可以預(yù)知即將發(fā)生的事(S1E15),甚至能打破所謂的“第四道墻”,因此獲封“神駒”稱(chēng)號(hào),S8末集透露出她也有某種魔法。相當(dāng)害怕寂寞,在S1E25時(shí)以為大家都不理她時(shí)因情緒低落變成過(guò)去的直發(fā),并且開(kāi)始出現(xiàn)一些精神異常的舉止,后來(lái)和大家解開(kāi)誤會(huì)。但在同人里則是黑化,并通常用她的本名萍卡美娜來(lái)代表她的黑化狀態(tài)。
小時(shí)候碧琪的家庭是在死氣沉沉的采石場(chǎng)工作,過(guò)著十分枯燥乏味的生活。直到有一天她看到云寶使出的彩虹音爆后使決定要改變現(xiàn)況。在用派對(duì)重拾她家人們的笑容后她的可愛(ài)標(biāo)志就出現(xiàn)了??蓯?ài)標(biāo)志出現(xiàn)的契機(jī)為"歡笑"。
她的全名叫Pinkamena Diane Pie(萍卡美娜·戴安·派),是極少數(shù)出現(xiàn)全名的小馬之一。
在S9E26中她帶著一匹雌性幼駒來(lái)到坎特洛特的城堡,并稱(chēng)其為"Little Cheese"。很大概率是她與芝士三明治的女兒。
名字由pinkie(小指)和pie(餡餅)組成。
在happy tree friends同人中串過(guò)場(chǎng)。
助理
Spike(穗龍/斯派克)
穗龍/斯派克
配音:Cathy Weseluck
國(guó)配:羅玉婷(S1-S5)、王曉彤(S6-S9)?[11]
日配:熊井統(tǒng)子
性別:男
星座:金牛座
種族:龍
寵物:在S2E21后認(rèn)養(yǎng)了小鳳凰Peewee(于S3E11出現(xiàn)的照片中得知已歸還給小鳳凰的父母,在S8E11也可得知)
簡(jiǎn)介:
一只紫色與綠色相間的小龍,在紫悅幼年時(shí)期參加的入學(xué)考試中因紫悅暴走的魔力讓它從蛋中孵化了出來(lái)。紫悅的助手兼室友,會(huì)幫著記事、整理資料、找尋書(shū)籍、寫(xiě)信,能夠吐出綠色的火焰,用它將信燒掉之后便會(huì)傳送到他指定的地方,從那邊寄來(lái)的信就由自己吐出。主食是各種寶石,但是也可以吃小馬的食物,擅長(zhǎng)挖洞。每當(dāng)紫悅和她的朋友有需要時(shí),會(huì)加以幫忙,對(duì)珍奇一見(jiàn)鐘情(到S2以前,珍奇并沒(méi)有在意他的愛(ài)慕之意)。在S8E11集時(shí)生長(zhǎng)出翅膀。
Starlight Glimmer(星光熠熠/星光燦燦)曾是大反派(S5季首和季終)
第五季的星光熠熠
配音:Kelly Sheridan
國(guó)配:嚴(yán)麗禎 (S5)、李曄(S6-S7)、范楚絨(S8-S9)
昵稱(chēng):書(shū)記(SG的諧音)
性別:女
星座:巨蟹座
種族:獨(dú)角獸
簡(jiǎn)介:
S5E1出現(xiàn)的新角色,一只紫色的獨(dú)角獸,魔力十分強(qiáng)大,可以和成為天角獸的紫悅匹敵。在S6中發(fā)型由原來(lái)的齊劉海變成了斜劉海。因幼時(shí)好友Sunburst(日光耀耀/隙日)獲得可愛(ài)標(biāo)志后離他而去感到悲傷,因此宣稱(chēng)差異會(huì)導(dǎo)致友誼破裂,而完全的平等才是解決之道。所以她利用魔法除去其他小馬的可愛(ài)標(biāo)志,然后用等號(hào)取代,并以獨(dú)裁的手段在邊境建立起一個(gè)反烏托邦式的小鎮(zhèn)。后被奪回可愛(ài)標(biāo)志的六主角打敗。
在S5E25-26中,星光熠熠從紫悅的演講中知道六個(gè)朋友的可愛(ài)標(biāo)志都源于云寶的彩虹音爆,于是通過(guò)星璇的咒語(yǔ)穿越到過(guò)去,阻止云寶做彩虹音爆,差點(diǎn)反派們毀滅小馬利亞,后來(lái)紫悅說(shuō)服了她回心轉(zhuǎn)意。
第六季及以后的星光熠熠
在S6中成為紫悅的學(xué)生,與曾經(jīng)的朋友重歸于好.S6E6與特麗克西成為好友。S6E25和特麗克西等朋友共同戰(zhàn)勝了蟲(chóng)繭女王。S7E1中紫悅宣布她已經(jīng)正式畢業(yè)。S9E20開(kāi)始擔(dān)任友誼學(xué)校校長(zhǎng)。
配角詳情
編輯?語(yǔ)音
小馬利亞公主
特別說(shuō)明:紫悅在成為天角獸后也是公主之一(友誼公主),但因主角已提到,這里不做重復(fù)。
Princess Celestia(宇宙公主/塞拉斯蒂婭公主)代表太陽(yáng)和白晝的公主
宇宙公主
配音:Nicole Oliver
國(guó)配:李曄
日配:井上喜久子
昵稱(chēng):大公主、Celie(塞莉)、tia(提婭)
性別:女
星座:天秤座
種族:天角獸
寵物:鳳凰 Philomena(菲洛米娜/菲拉美娜)
妹妹:月亮公主
簡(jiǎn)介:
淡粉白色身體,暗彩虹色流動(dòng)鬃毛,紫粉色眼睛,頭戴金色鑲紫色寶石皇冠的小馬。可愛(ài)標(biāo)志為一個(gè)太陽(yáng)。小馬利亞至高無(wú)上的存在,既是神也是君主。體形比一般小馬要大得多。精通各種魔法,擔(dān)任天才獨(dú)角獸學(xué)園的校長(zhǎng)和教師,也是紫悅和音韻公主的導(dǎo)師。和妹妹負(fù)責(zé)整個(gè)小馬利亞的日夜運(yùn)作,后因?yàn)樵铝凉髯兂蓧?mèng)魘之月,宇宙公主使用了和諧之元的魔法將她囚禁在月球上一千年,并同時(shí)承擔(dān)日月交替的職責(zé)。S9退位并讓紫悅接替。
破滅之陽(yáng)
雖然貴為王族的身分讓人敬畏,但其實(shí)她相當(dāng)溫柔美麗,一點(diǎn)也不嚴(yán)厲,甚至還有些淘氣(Molestia是同人設(shè)定,并非官方)。喜歡吃蛋糕,因?yàn)樵趫?bào)紙上的照片似乎有些不雅(S2E23),被同人設(shè)定成吃相難看,實(shí)際上她只是被閃光燈嚇到了。總是努力試著建立親民的形象。
因相中紫悅的魔力而將她收為直屬徒弟。給紫悅許多特權(quán),探望紫悅常常御駕親征小馬鎮(zhèn),常指派紫悅為代表皇家去執(zhí)行任務(wù)。
在S7E10中,在星光熠熠的夢(mèng)中見(jiàn)到黑化的宇宙公主——Daybreaker(破滅之陽(yáng)/拂曉)。
Princess Luna(月亮公主/露娜公主)代表月亮和黑夜的公主;曾是大反派(本作開(kāi)端)
月亮公主
配音:Tabitha St. Germain
國(guó)配:范楚絨(S1-S5) 、嚴(yán)麗禎(S6-S9)
日配:內(nèi)山夕實(shí)(夢(mèng)魘之月?tīng)顟B(tài)下配音為本田貴子)
昵稱(chēng):二公主、露露、Woona
性別:女
星座:天蝎座
種族:天角獸
姐姐:宇宙公主
簡(jiǎn)介:
有深藍(lán)色身體,天藍(lán)色星空般飄逸流動(dòng)鬃毛,青藍(lán)色眼睛,頭戴黑色皇冠的小馬??蓯?ài)標(biāo)志為一輪彎月和黑色云霧。黑色云霧在公主二姐妹日記的插圖中似乎并非與彎月同時(shí)出現(xiàn)。
夢(mèng)魘之月
首度以月亮公主的身分出場(chǎng)時(shí)體型同于其他小馬,純藍(lán)鬃毛,S2E4再度出場(chǎng)后身型高大,鬃毛也變?yōu)樾强丈?。最初和姐姐一起司掌日月的交替,但由于小馬都在夜間就寢造成的孤單轉(zhuǎn)化為嫉妒而被黑暗力量掌控成為Nightmare moon(夢(mèng)魘之月/噩夢(mèng)之月),后被囚禁在月球。一千年后被紫悅等六只小馬用和諧之元凈化,再度回歸姐姐身旁,一起治理小馬利亞。S9退位并讓紫悅接替。
說(shuō)話方式用皇家口音,出場(chǎng)與臺(tái)詞少,人氣卻相當(dāng)高。夢(mèng)境的管治者,有時(shí)會(huì)來(lái)到其他小馬的夢(mèng)中,幫助小馬面對(duì)噩夢(mèng)。
注:Luna一詞源于意大利語(yǔ),在意大利語(yǔ)中Luna的意思就是月亮。
Princess Cadence(音韻公主/韻律公主)代表愛(ài)的公主
音韻公主
配音:Britt McKillip
國(guó)配:范楚絨(S2-S3、S8-S9)、嚴(yán)麗禎(S4-S5)、洪海天(S6-S7)
日配:高垣彩陽(yáng)
性別:女
星座:水瓶座
種族:天角獸(原種族為飛馬)
簡(jiǎn)介:
又叫Mi Amore Cadenza(米阿默卡丹紗,意大利語(yǔ)),宇宙公主以前的學(xué)生,淺粉色身體,淺金色、紫色、玫紅色三色相間鬃毛,淺紫色眼睛,頭戴黃色鑲紫色寶石皇冠,美麗溫柔。可愛(ài)標(biāo)志為鑲金邊的水晶愛(ài)心。S2時(shí)與閃耀盔甲結(jié)婚前她被蟲(chóng)繭女王抓到坎特洛特底下的巖洞里,被紫悅救出,與丈夫用愛(ài)的力量把蟲(chóng)繭女王打敗。在S3E1,2又和紫悅一起打敗了森布拉大王,和閃耀盔甲成為水晶帝國(guó)的守護(hù)者并治理帝國(guó)。她的可愛(ài)標(biāo)志也正是水晶帝國(guó)的象征——水晶愛(ài)心,代表著將愛(ài)和光明傳遞在每人心中,她曾是紫悅的保姆。在S5E20中有了自己的寶寶風(fēng)雪之心。
下面這種情況下,為 InkWell 設(shè)置的 splashColor 不會(huì)生效:
需要用 Material 去除背景色,然后將顏色設(shè)置在 InkWell 外部:
在 Dialog builder 中使用 WillPopScope 禁用返回鍵返回:
注意:使用此方法同時(shí)也會(huì)禁用 iOS 上的手勢(shì)滑動(dòng)返回功能,推薦判斷平臺(tái)后再使用。
修改對(duì)話框中的復(fù)選框狀態(tài),最簡(jiǎn)便的方法是通過(guò) Element 中的 markNeedsBuild 方法:
當(dāng)然,更推薦的做法是通過(guò) StatefulBuilder ,然后就可以在 Dialog 中調(diào)用 setState 方法了,不過(guò)在調(diào)用 setState 時(shí)需要判斷 Dialog 是否已經(jīng)關(guān)閉,否則會(huì)造成 setState() called after dispose() 的錯(cuò)誤,可以通過(guò)添加一個(gè)標(biāo)志位來(lái)解決,如下:
在 Web 中加載網(wǎng)絡(luò)圖片有時(shí)會(huì)失敗,遇到這樣的報(bào)錯(cuò): Exception caught by image resource service... ,造成該錯(cuò)誤的原因通常是,圖片跨域了(見(jiàn) 跨域資源共享 )。最簡(jiǎn)單的解決辦法是, 使用 HTML 渲染加載 ,而不是默認(rèn)的 CanvasKit。
Flutter 中所有的 list 默認(rèn)都是沒(méi)有 ScrollBar 的,必須使用 ScrollBar 組件。ScrollBar 組件通過(guò)監(jiān)聽(tīng) ScrollView 的 ScrollNotification 來(lái)刷新位置,所以 List 的長(zhǎng)度必須是固定的。
當(dāng)使用 WebView 等高度不定的組件時(shí)會(huì)出現(xiàn)內(nèi)容被截?cái)嗟那闆r,通常可以使用 NestedScrollView 來(lái)解決該問(wèn)題,需要在 WebView 外部嵌套 SingleChildScrollView。
雖然使用了緩存,而且也是用 builder 加載圖片的,但是發(fā)現(xiàn)一個(gè)現(xiàn)象:滑動(dòng)屏幕后圖片短暫消失并重新加載了。圖片高度很高時(shí)這種現(xiàn)象更加明顯,其原因是超出屏幕范圍一定距離的組件被重新渲染了。解決方法是在 ListView 上設(shè)置 cacheExtent 參數(shù):
該參數(shù)的作用是改變超出屏幕高度后繼續(xù)渲染的范圍(以像素為單位),比如設(shè)置成 9999 后意味著超出屏幕 10000 像素以?xún)?nèi)的內(nèi)容都會(huì)被保留下來(lái)。
借助 IntrinsicHeight 組件:
另外,IntrinsicHeight 還可以用于 Dialog 或者 BottomSheet 中,使得其中的元素 顯示內(nèi)在元素的高度 ,從而避免元素因?yàn)榧s束的存在而不顯示或者高度太高(比如在使用了 Column 或者 Row 的時(shí)候)。
在通過(guò) Uri 的 queryParameters 獲取 query 參數(shù)時(shí),發(fā)現(xiàn)有些鏈接會(huì)拋出下面異常:
造成該異常的原因是 Uri 默認(rèn)使用 utf-8 解碼超鏈接字符串,如果鏈接中包含非 utf-8 字符,就會(huì)造成上面的錯(cuò)誤,相關(guān) issue 見(jiàn): issue #31621 。目前該 issue 處于 open 的狀態(tài),暫時(shí)的解決辦法是,在所有使用到 queryParameter 的地方用 try..catch 捕捉可能拋出的異常。
Flutter 開(kāi)發(fā)非常依賴(lài)各種官方或第三方的插件,而在使用這些插件時(shí)多少都會(huì)遇到一些問(wèn)題,大部分問(wèn)題都可以通過(guò)搜索和查找 issue 來(lái)解決。這里記錄下一些我在使用部分插件時(shí)遇到的問(wèn)題及其解決方法。
目前該庫(kù)沒(méi)有圖片加載完成的回調(diào)(見(jiàn) issue #545 ),不過(guò)我們可以通過(guò)在 imageBuilder 中來(lái)添加回調(diào):
這是一個(gè)應(yīng)用內(nèi)更新插件,安卓 10 以上安裝時(shí)需要在 manifest 中添加以下內(nèi)容:
目前功能最強(qiáng)大的 WebView 插件,基本能滿(mǎn)足絕大部分移動(dòng)端網(wǎng)頁(yè)加載的需求,而且可定制化程度高。
一般通過(guò) CookieManager 修改 Cookie,攔截請(qǐng)求并修改請(qǐng)求對(duì)象的 Header 不會(huì)生效。
InAppWebViewOptions 的 userAgent 只在 iOS 上生效,而 applicationNameForUserAgent 只在 Android 上生效,所以最好的做法是分平臺(tái)設(shè)置 InAppWebViewOptions ,而且需要注意,由于設(shè)置 userAgent 后會(huì)覆蓋默認(rèn)的 UserAgent,所以如果需要在默認(rèn)的 UserAgent 上添加其它參數(shù),iOS 上需要通過(guò) InAppWebViewController.getDefaultUserAgent() 獲取默認(rèn) UserAgent 參數(shù),而 Android 不需要添加。
如果圖片源或者請(qǐng)求是 http 的,為了在 Android 上正常加載請(qǐng)求,必須在 AndroidInAppWebViewOptions 中將 mixedContentMode 設(shè)置為 AndroidMixedContentMode.MIXED_CONTENT_ALWAYS_ALLOW 。
當(dāng)我們想要設(shè)置全屏圖片的時(shí)候,由于默認(rèn)的 Constraint 會(huì)將圖片居中顯示,所以圖片四周會(huì)留有空隙。為了去除這個(gè)限制,我們需要 Xcode 中打開(kāi) LaunchScreen.storyboard,然后在 View Controller 的 View 和 LaunchImage 上的 Safe Area 去掉。
具體設(shè)置方法:右側(cè) Inspector 面板 Show the Size inspector 解選 Layout Margins 中的 Safe Area Relative Margins,拖動(dòng)圖片占滿(mǎn)全屏,然后根據(jù) View Controller Scene 的 Warning,更新 Constraint 就可以了。
在集成某些三方庫(kù)之后,在使用命令行運(yùn)行 iOS 模擬器的時(shí)候可能會(huì)遇到下面這個(gè)報(bào)錯(cuò):
這是因?yàn)?iOS 模擬器未來(lái)將會(huì)兼容 arm64 架構(gòu),但是目前還不支持,所以我們需要修改 Build Setting 使得能夠在 x86_64 的模擬器上運(yùn)行,操作步驟見(jiàn) 這里 。