Flutter 使用 Flutter IDE

2020-08-27 14:48 更新

安裝和設(shè)置

請(qǐng)按照編輯器設(shè)置說明安裝Dart和Flutter插件。

Updating the plugins

對(duì)插件的更新將定期發(fā)布。當(dāng)更新可用時(shí),您在IntelliJ中會(huì)收到提示。

手動(dòng)檢查更新:

  1. 打開 preferences (IntelliJ IDEA>Check for Updates… on macOS, Help>Check for Updates… on Linux).
  2. 如果有 dart 后者flutter被列出, 更新它們.

創(chuàng)建項(xiàng)目

創(chuàng)建一個(gè)新項(xiàng)目

從Flutter入門應(yīng)用程序模板創(chuàng)建一個(gè)新的Flutter IntelliJ項(xiàng)目:

  1. 在IntelliJ中,在 ‘Welcome’ 窗口點(diǎn)擊 Create New Project 或者在主界面 File>New>Project…
  2. 在菜單中選擇 Flutter , 然后點(diǎn)擊 Next.
  3. 輸入Project name 和 Project location
  4. 點(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)目:

  1. 在IntelliJ中, 在’Welcome’窗口點(diǎn)擊Create New Project 或者在主界面File>New>Project…注意: 不要使用New>Project from existing sources… 選項(xiàng)來創(chuàng)建.
  2. 在菜單中選擇 Flutter , 然后點(diǎn)擊 Next.
  3. 在 Project location 中輸入,或者瀏覽選擇現(xiàn)有的Flutter源代碼文件目錄
  4. 點(diǎn)擊 Finish.

編輯代碼和查看代碼問題

Dart插件執(zhí)行代碼分析,可以:

  • 語法高亮顯示.
  • 基于豐富類型分析的代碼補(bǔ)全.
  • 導(dǎo)航到類型聲明 (Navigate>Declaration), 查找類型使用的地方 (Edit>Find>Find Usages).
  • 查看當(dāng)前源代碼的所有問題 (View>Tool Windows>Dart Analysis). 任何分析問題將在Analysis pane窗口中顯示:Dart Analysis pane

運(yùn)行和調(diào)試

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

Main IntelliJ toolbar

選擇一個(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ì)顯示日志輸出 Log pane

有斷點(diǎn)運(yùn)行

  1. 如果需要,可在源代碼中設(shè)置斷點(diǎn).
  2. 點(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檢查器工具窗口。

IntelliJ Flutter Inspector Window

這提供了許多調(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:

  1. 以調(diào)試模式運(yùn)行您的應(yīng)用程序.
  2. 在Debug面板中選擇’open observatory’ (見下面截圖), 點(diǎn)擊秒表?圖標(biāo) (‘Open Observatory’).

Debugging panel

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)用該輔助功能,如下所示:

IntelliJ editing assists

快速修正是類似的,只有顯示一段有錯(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ǔ)全窗口中選擇它們:

IntelliJ live templates

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”。右鍵單擊要更改的綁定并添加鍵盤快捷鍵

IntelliJ Settings Keymap

‘熱重載’ 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的位置:

  1. 在Preferences->Plugins中, 啟用 Android Support (如果你還沒有啟用).
  2. 右鍵單擊項(xiàng)目視圖中的android文件夾,然后選擇Open Module Settings。
  3. 在 Sources 選項(xiàng)卡中, 找到 Language level 字段, 然后選擇 ‘8’或更高級(jí)別
  4. In Dependencies tab, locate the Module SDK field, and select an
  5. 在Dependencies選項(xiàng)卡中,找到Module SDK字段,然后選擇一個(gè)Android SDK。如果沒有列出SDK,請(qǐng)單擊New…并指定Android SDK的位置。 請(qǐng)確保選擇與Flutter使用的Android SDK相匹配的Android SDK(如flutter doctor所提示的)。
  6. 點(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的輸出

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)