Flutter 實際項目填坑記錄

??Flutter是一個全新的跨平臺開發(fā)的語言性锭,我在實際項目開發(fā)中也有幸使用到 Flutter 進(jìn)行完整開發(fā)赠潦,在這個開發(fā)過程中也是一步步的實驗,在這其中也遇到了各種各樣的坑草冈, 網(wǎng)上通過各種谷歌她奥,stackoverflow瓮增,F(xiàn)lutter官網(wǎng)等查資料,有些問題是解決哩俭,但還是有些問題不能及時解決绷跑,于是就自己慢慢的嘗試著摸索除了一些解決方案,所以在這里就整理一下分享給大家携茂,跟大家一起學(xué)習(xí)你踩、討論。

1讳苦、Waiting for another flutter command to release the startup lock...

問題描述

在項目中使用Flutter Packages get時或命令行執(zhí)行flutter build 時 會 出現(xiàn): Waiting for another flutter command to release the startup lock...

解決方案:

找到\bin\cache中的lockfile文件刪除带膜,如果還是不行則重啟IDE重新試下。

2鸳谜、The context used to push or pop routes from the Navigator must be that of a widget that is a descendant of a Navigator widget.

問題描述

在頁面 initState膝藕、build、或者頁面返回沒辦法直接使用 context 或 setState

解決辦法

使用

Future.delayed(Duration.zero).then((e) {
      ....
    });

3咐扭、PageView保存狀態(tài)報錯

問題描述

Build functions must never return null. To return an empty space that causes the building widget to fill available room, return "new Container()". To return an empty space that takes as little room as possible, return "new Container(width: 0.0, height: 0.0)"

解決辦法

在 build 方法必須加上super.build

 @override
  Widget build(BuildContext context) {
    super.build(context); //保存狀態(tài)必須加上
    [...]
  }

4芭挽、EventManager使用問題

post                        : 發(fā)送消息
on                          : 監(jiān)聽消息
destroy                     : 銷毀

問題描述

錯誤的使用destory 使得整個應(yīng)用沒辦法監(jiān)聽消息

解決辦法

在 BaseWidget 的 dispose不能 destory EventManager。EventManager是單例蝗肪,基類取消就全部取消了袜爪。

5、IOS 調(diào)起相機(jī)/相冊點(diǎn)擊事件穿透

問題描述

在調(diào)起相機(jī)薛闪、相冊選擇圖片時辛馆,點(diǎn)擊相機(jī)區(qū)域、圖片選擇區(qū)域會響應(yīng)下層 flutter 界面的點(diǎn)擊事件

具體參與:https://github.com/flutter/flutter/issues/32896

解決辦法

目前處理的辦法是調(diào)起相機(jī)豁延、相冊時顯示一個帶蒙層的彈窗昙篙,收起相機(jī)、機(jī)冊時取消蒙層彈窗诱咏。

6苔可、官方 Webview_flutter 使用問題

問題描述

在 android 中輸入框獲焦點(diǎn),點(diǎn)擊兩次會閃退袋狞。

在IOS需要 配置了io.flutter.embedded_views_preview屬性,會導(dǎo)致鍵盤卡頓焚辅。

解決辦法

待官方解決,暫時使用第三方flutter_webview_plugin 插件

7苟鸯、flutter_webview_plugin 插件使用問題

問題描述

flutter_webview_plugin是調(diào)用原生 webview.并加到原生主頁面上法焰。所以該 webview 是最頂層的,無法在其上顯示flutter的視圖

解決辦法

要顯示彈窗等視圖時先判斷當(dāng)前是否有webview頁面倔毙,并且在進(jìn)入webview頁面時調(diào)用FlutterWebviewPlugin().show();退出 webviewd頁面時調(diào)用FlutterWebviewPlugin().hide();

8埃仪、命名路由無法關(guān)閉指定頁面

問題描述

flutter 關(guān)閉彈窗、頁面都會都是調(diào)用 Navigator.pop(context, result)陕赃,在這里沒辦法指定特定的頁面路由或彈窗

解決辦法

修改源碼把底層的history釋放出來卵蛉,或者盡量避免這種需要關(guān)閉指定頁面的做法颁股。

9、點(diǎn)擊控件區(qū)域沒事件響應(yīng)

問題描述

正確的設(shè)置了控件的點(diǎn)擊事件傻丝,點(diǎn)擊卻沒有反應(yīng)

解決辦法

  • 給控件設(shè)置背景
  • 設(shè)置behavior屬性
return GestureDetector(
                    behavior: HitTestBehavior.translucent,
                    child: Text("測試${index}"),
                    onTap: () {},
                  );


enum HitTestBehavior {
  /// Targets that defer to their children receive events within their bounds
  /// only if one of their children is hit by the hit test.
  deferToChild, //只生效在child的區(qū)域比如文字

  /// Opaque targets can be hit by hit tests, causing them to both receive
  /// events within their bounds and prevent targets visually behind them from
  /// also receiving events.
  opaque,//GestureDetector的整個區(qū)域甘有,不包括它下面的區(qū)域

  /// Translucent targets both receive events within their bounds and permit
  /// targets visually behind them to also receive events.
  translucent,// GestureDetector的整個區(qū)域以及它下面的區(qū)域
}

10、Appbar/Tabbar/的高度設(shè)置問題

問題描述

Appbar葡缰、Tabbar 默認(rèn)有固定的高度亏掀,如何改變其高度

解決辦法

使用PreferredSize。

最后

??如果在使用過程遇到問題泛释,歡迎下方留言交流滤愕。

學(xué)習(xí)資料

請大家不吝點(diǎn)贊!因為您的點(diǎn)贊是對我最大的鼓勵怜校,謝謝间影!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茄茁,隨后出現(xiàn)的幾起案子魂贬,更是在濱河造成了極大的恐慌,老刑警劉巖裙顽,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件付燥,死亡現(xiàn)場離奇詭異,居然都是意外死亡愈犹,警方通過查閱死者的電腦和手機(jī)机蔗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甘萧,“玉大人,你說我怎么就攤上這事梆掸⊙锞恚” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵酸钦,是天一觀的道長怪得。 經(jīng)常有香客問我,道長卑硫,這世上最難降的妖魔是什么徒恋? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮欢伏,結(jié)果婚禮上入挣,老公的妹妹穿的比我還像新娘。我一直安慰自己硝拧,他們只是感情好径筏,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布葛假。 她就那樣靜靜地躺著,像睡著了一般滋恬。 火紅的嫁衣襯著肌膚如雪聊训。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天恢氯,我揣著相機(jī)與錄音带斑,去河邊找鬼。 笑死勋拟,一個胖子當(dāng)著我的面吹牛勋磕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播指黎,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼隅要,長吁一口氣:“原來是場噩夢啊……” “哼望拖!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤过吻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后包帚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體若皱,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年柠辞,在試婚紗的時候發(fā)現(xiàn)自己被綠了团秽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡叭首,死狀恐怖习勤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情焙格,我是刑警寧澤图毕,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站眷唉,受9級特大地震影響予颤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜冬阳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一蛤虐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肝陪,春花似錦驳庭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捏检。三九已至,卻和暖如春不皆,著一層夾襖步出監(jiān)牢的瞬間贯城,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工霹娄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留能犯,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓犬耻,卻偏偏與公主長得像踩晶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枕磁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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