![AS 使用 Flutter 程式碼模板](https://i.iter01.com/images/9a3c3ab25d3a0d96dd092c22291681326ef50de4e2143ae3486b7d8beae6e738.png)
AS 使用 Flutter 程式碼模板
Android Studio 本來是用來開發 Android 的 IDE,通過安裝 Flutter 和 Dart 兩款外掛就可以使用 Android Studio 來進行 Flutter 應用程式開發了。
但是有一點不方便的就是,新建的 dart 檔案,裡面沒有任何程式碼,全部都要自己寫,有一些重複的程式碼比如 StatefulWidget 這樣的模板,我們希望工具能夠自動生成,來簡化我們的開發。AS 上有程式碼模板的功能,我們可以通過新建 dart 的程式碼模板來完成自動生成程式碼的功能。
無論是 Mac 還是 Windows ,都可以通過在 Setting 裡面搜尋 Templates 找到這個設定。
![AS 使用 Flutter 程式碼模板](https://i.iter01.com/images/66b16af9983a07cf79c4f5e06a038d7eb5b5284411d1c9f11c7093395940ef45.png)
Flutter 的程式碼模板是通過 Velocity 模板引擎 來實現的,更詳細的資料可以參考這裡。
一、StatelessWidget 程式碼模板
在 File and Code Templates 裡,選擇 Files 一欄,點選左上角加號,新建名字是 StatelessWidget ,副檔名為 dart 的程式碼模板。
![AS 使用 Flutter 程式碼模板](https://i.iter01.com/images/254a64c271f338b0d9d1744a05edd78287cff7dc8bb29d5dcbffed24e36fa541.png)
模板如下
import 'package:flutter/material.dart';
#set( $items = $NAME.split("_") )
#set( $class = "" )
#set( $item = "" )
#foreach($item in $items)
#set( $class = $class + $item.substring(0,1).toUpperCase() + $item.substring(1).toLowerCase() )
#end
class ${class} extends StatelessWidget {
${class}({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(color: Colors.blue);
}
}
複製程式碼
二、StatefulWidet 程式碼模板
import 'package:flutter/material.dart';
#set( $items = $NAME.split("_") )
#set( $class = "" )
#set( $item = "" )
#foreach($item in $items)
#set( $class = $class + $item.substring(0,1).toUpperCase() + $item.substring(1).toLowerCase() )
#end
class ${class} extends StatefulWidget {
${class}({Key key}) : super(key: key);
@override
_${class}State createState() => _${class}State();
}
class _${class}State extends State<${class}> {
@override
Widget build(BuildContext context) {
return Container(color: Colors.blue);
}
}
複製程式碼
三、Mixin 程式碼模板
#set( $items = $NAME.split("_") )
#set( $class = "" )
#set( $item = "" )
#foreach($item in $items)
#set( $class = $class + $item.substring(0,1).toUpperCase() + $item.substring(1).toLowerCase() )
#end
mixin ${class} {
}
複製程式碼
四、Extension 程式碼模板
#set( $items = $NAME.split("_") )
#set( $class = "" )
#set( $item = "" )
#foreach($item in $items)
#set( $class = $class + $item.substring(0,1).toUpperCase() + $item.substring(1).toLowerCase() )
#end
extension ${class} on ${on} {
}
複製程式碼
五、使用
新建檔案的時候,就可以使用剛才新建的程式碼模板了。
![AS 使用 Flutter 程式碼模板](https://i.iter01.com/images/d12b158eb5a982d5ff3f5c95bf138ac51c306a0c09e2cca920fc9afdbe8db6e2.png)
比如新建一個名字為 TestTemplate 使用 StatefulWidget 模板的檔案,最終生成的檔案裡面自動生成的程式碼如下
class Testtemplate extends StatefulWidget {
Testtemplate({Key key}) : super(key: key);
@override
_TesttemplateState createState() => _TesttemplateState();
}
class _TesttemplateState extends State<Testtemplate> {
@override
Widget build(BuildContext context) {
return Container(color: Colors.blue);
}
}
複製程式碼
歡迎關注「Flutter 程式設計開發」微信公眾號 。
![AS 使用 Flutter 程式碼模板](https://i.iter01.com/images/112d7041437b4cc8c088aec6e436fa8cd08307e12353c189febd697a63c44ce3.jpg)