安裝和設(shè)置
請(qǐng)按照編輯器設(shè)置說明安裝Dart和Flutter插件。
Updating the plugins
對(duì)插件的更新將定期發(fā)布。當(dāng)更新可用時(shí),您在IntelliJ中會(huì)收到提示。
手動(dòng)檢查更新:
- 打開 preferences (IntelliJ IDEA>Check for Updates… on macOS, Help>Check for Updates… on Linux).
- 如果有 dart 后者flutter被列出, 更新它們.
創(chuàng)建項(xiàng)目
創(chuàng)建一個(gè)新項(xiàng)目
從Flutter入門應(yīng)用程序模板創(chuàng)建一個(gè)新的Flutter IntelliJ項(xiàng)目:
- 在IntelliJ中,在 ‘Welcome’ 窗口點(diǎn)擊 Create New Project 或者在主界面 File>New>Project…
- 在菜單中選擇 Flutter , 然后點(diǎn)擊 Next.
- 輸入Project name 和 Project location
- 點(diǎn)擊 Finish.
從現(xiàn)有的源代碼創(chuàng)建一個(gè)新的項(xiàng)目
To create a new Flutter IntelliJ project containing existing Flutter source code files: 創(chuàng)建一個(gè)包含現(xiàn)有Flutter源代碼文件的新Flutter IntelliJ項(xiàng)目:
- 在IntelliJ中, 在’Welcome’窗口點(diǎn)擊Create New Project 或者在主界面File>New>Project…注意: 不要使用New>Project from existing sources… 選項(xiàng)來創(chuàng)建.
- 在菜單中選擇 Flutter , 然后點(diǎn)擊 Next.
- 在 Project location 中輸入,或者瀏覽選擇現(xiàn)有的Flutter源代碼文件目錄
- 點(diǎn)擊 Finish.
編輯代碼和查看代碼問題
Dart插件執(zhí)行代碼分析,可以:
- 語法高亮顯示.
- 基于豐富類型分析的代碼補(bǔ)全.
- 導(dǎo)航到類型聲明 (Navigate>Declaration), 查找類型使用的地方 (Edit>Find>Find Usages).
- 查看當(dāng)前源代碼的所有問題 (View>Tool Windows>Dart Analysis). 任何分析問題將在Analysis pane窗口中顯示:

運(yùn)行和調(diào)試
運(yùn)行和調(diào)試由主工具欄控制:

選擇一個(gè)target
在IntelliJ中打開一個(gè)Flutter項(xiàng)目時(shí),您應(yīng)該在工具欄的右側(cè)看到一組Flutter特定的按鈕。
注意: 如果Run&Debug按鈕被禁用,并且沒有列出任何target,則Flutter沒有發(fā)現(xiàn)任何連接的iOS或Android設(shè)備或模擬器。您需要連接設(shè)備或啟動(dòng)模擬器才能繼續(xù)。
點(diǎn)擊 Flutter Target Selector 下拉按鈕,這將顯示可用的設(shè)備列表,選擇你想讓你的應(yīng)用運(yùn)行的設(shè)備. 當(dāng)您連接新的設(shè)備或啟動(dòng)新的模擬器時(shí),里面會(huì)添加新的選項(xiàng)
無斷點(diǎn)運(yùn)行
點(diǎn)擊 運(yùn)行圖標(biāo),或者調(diào)用 Run>Run。底部的 Run 窗格中將會(huì)顯示日志輸出 
有斷點(diǎn)運(yùn)行
- 如果需要,可在源代碼中設(shè)置斷點(diǎn).
- 點(diǎn)擊工具欄的 調(diào)試圖標(biāo),或者調(diào)用 Run>Debug。底部的 Debugger 窗口將顯示調(diào)用棧和變量.底部的 Console 窗口將顯示詳細(xì)的日志輸出.調(diào)試基于默認(rèn)的啟動(dòng)配置。要自定義這個(gè),點(diǎn)擊設(shè)備選擇器右側(cè)的下拉按鈕,然后選擇 Edit configuration
快速編輯和加快開發(fā)周期
Flutter提供了快速的的開發(fā)周期循壞,使您能夠通過“熱重新”功能在源碼發(fā)生改變后幾乎立即看到變更的效果。有關(guān)詳細(xì)信息,請(qǐng)參閱熱重載Flutter應(yīng)用程序。
高級(jí)調(diào)試
調(diào)試可視化布局問題
要調(diào)試UI問題,請(qǐng)使用“Debug”啟動(dòng)應(yīng)用程序,然后使用’View > Tool Windows > Flutter Inspector’打開Flutter檢查器工具窗口。

這提供了許多調(diào)試工具; 有關(guān)這些詳細(xì)信息,請(qǐng)參閱調(diào)試Flutter Apps
- ‘切換 Select Widget 模式’: 在設(shè)備上選擇一個(gè)widget以在Flutter Inspector中對(duì)其進(jìn)行檢查。
- ‘切換 Debug Paint’: 顯示W(wǎng)idget布局邊界(包括邊框、padding、對(duì)齊等)
- ‘切換 Platform’: 在Android或iOS渲染之間切換.
- ‘切換 Performance Overlay’: 顯示GPU和CPU線程的性能圖.
- ‘打開 Timeline 窗口’: 分析應(yīng)用程序運(yùn)行時(shí)的活動(dòng).
- ‘打開 Observatory’: Dart應(yīng)用程序的分析器.
菜單中還有一些其他操作:
- ‘Show Paint Baselines’: 使每個(gè)RenderBox顯示其基線
- ‘Enable Repaint Rainbow’: 重繪時(shí)在層上顯示旋轉(zhuǎn)顏色.
- ‘Enable Slow Animations’: 減慢動(dòng)畫以方便觀察.
- ‘Hide Slow Mode Banner’: 使在運(yùn)行調(diào)試版本時(shí)隱藏’slow mode’橫幅
Debugging with Observatory
Observatory 是一個(gè)附帶的基于HTML的用戶界面的調(diào)試和分析工具. 詳情請(qǐng)參考 Observatory page.
打開 Observatory:
- 以調(diào)試模式運(yùn)行您的應(yīng)用程序.
- 在Debug面板中選擇’open observatory’ (見下面截圖), 點(diǎn)擊秒表?圖標(biāo) (‘Open Observatory’).

Flutter代碼提示
輔助 & 快速修正
輔助是與特定代碼標(biāo)識(shí)符相關(guān)的代碼更改。當(dāng)光標(biāo)放置在Flutter Widget標(biāo)識(shí)符上時(shí),可以使用其中的一些標(biāo)識(shí)符,如黃色燈泡圖標(biāo)所示。 可以通過單擊燈泡或使用鍵盤快捷Alt-Enter來調(diào)用該輔助功能,如下所示:

快速修正是類似的,只有顯示一段有錯(cuò)誤的代碼時(shí),他們可以幫助您糾正它。它用一個(gè)紅色燈泡表示。
輔助菜單中的幾個(gè)功能:
用新的widget包裝當(dāng)前widget
這可以在您想要包裝光標(biāo)周圍的widget時(shí)使用,例如,如果要將widget包裝在一個(gè)Row或中Column。
用新的widget包裝widget list
類似于上一條,但是用于包裝現(xiàn)有widget 列表而不是單個(gè)widget。
將 child 轉(zhuǎn)為 children
將child參數(shù)更改為children,并將參數(shù)值包裝在列表中
實(shí)時(shí)模板
實(shí)時(shí)模板可用于加速輸入常用的代碼結(jié)構(gòu)塊。通過輸入他們的’前綴’來調(diào)用它們,然后在代碼補(bǔ)全窗口中選擇它們:

Flutter插件包含以下模板:
- 前綴stless: 創(chuàng)建一個(gè)StatelessWidget的子類.
- 前綴stful: 創(chuàng)建一個(gè)StatefulWidget子類并且關(guān)聯(lián)到一個(gè)State子類.
- 前綴stanim: 創(chuàng)建一個(gè)StatefulWidget子類, 并且它關(guān)聯(lián)的State子類包括一個(gè) AnimationController
您還可以在 Settings > Editor > Live Templates 中自定義模板。
IntelliJ鍵盤快捷鍵
熱重載(Hot Reload)
在Linux上(IntelliJ鍵盤映射默認(rèn)為XWin)和Windows鍵盤快捷鍵是ctrl-alt-;和ctrl-\。
在macOS上(IntelliJ鍵盤映射Mac OS X 10.5+ copy),鍵盤快捷鍵是?-?-; 和?-\。
鍵盤映射可以在IntelliJ Preferences/Settings進(jìn)行更改:選擇Keymap,然后在右上角的搜索框中輸入”flutter”。右鍵單擊要更改的綁定并添加鍵盤快捷鍵

‘熱重載’ vs ‘完全重啟’
熱重載通過將更新的源代碼文件注入正在運(yùn)行的Dart VM(虛擬機(jī))中工作。這不僅包括添加新類,還包括向現(xiàn)有類添加方法和字段以及更改現(xiàn)有函數(shù)。盡管有幾種類型的代碼更改無法熱重載:
- 全局變量初始化器.
- 靜態(tài)字段初始化器.
- app的main()方法.
對(duì)于這些更改,您可以完全重新啟動(dòng)應(yīng)用程序,而無需結(jié)束調(diào)試會(huì)話:
不要點(diǎn)擊停止按鈕; 只需重新單擊運(yùn)行按鈕(如果在運(yùn)行會(huì)話中)或調(diào)試按鈕(如果在調(diào)試會(huì)話中),或者按住Shift鍵并單擊“熱重載”按鈕
在IntelliJ IDEA中編輯Android代碼
要在IntelliJ IDEA中編輯Android代碼,您需要配置Android SDK的位置:
- 在Preferences->Plugins中, 啟用 Android Support (如果你還沒有啟用).
- 右鍵單擊項(xiàng)目視圖中的android文件夾,然后選擇Open Module Settings。
- 在 Sources 選項(xiàng)卡中, 找到 Language level 字段, 然后選擇 ‘8’或更高級(jí)別
- In Dependencies tab, locate the Module SDK field, and select an
- 在Dependencies選項(xiàng)卡中,找到Module SDK字段,然后選擇一個(gè)Android SDK。如果沒有列出SDK,請(qǐng)單擊New…并指定Android SDK的位置。 請(qǐng)確保選擇與Flutter使用的Android SDK相匹配的Android SDK(如flutter doctor所提示的)。
- 點(diǎn)擊OK.
提示和技巧
請(qǐng)查看這些’cheat sheets’:
- Flutter IntelliJ cheat sheet, MacOS version
- Flutter IntelliJ cheat sheet, Windows & Linux version
故障排除
已知問題和反饋
Flutter plugin README文件中記錄了可能影響您的體驗(yàn)的重要已知問題 。
所有已知的錯(cuò)誤都會(huì)持續(xù)跟蹤:
- Flutter 插件: GitHub issue 跟蹤.
- Dart 插件: JetBrains YouTrack.
我們非常歡迎有關(guān)錯(cuò)誤/問題和功能請(qǐng)求的反饋。在提交新問題之前,請(qǐng):
- 在問題跟蹤中快速搜索以查看該問題是否已被跟蹤
- 確保你已經(jīng) 更新 到了最新版本的插件
提交新issue時(shí),請(qǐng)包括flutter doctor的輸出
更多建議: