Android Studio 原本是用来开发 Android 的 IDE,经过安装 Flutter 和 Dart 两款插件就可使用 Android Studio 来进行 Flutter 应用程序开发了。html
可是有一点不方便的就是,新建的 dart 文件,里面没有任何代码,所有都要本身写,有一些重复的代码好比 StatefulWidget 这样的模板,咱们但愿工具可以自动生成,来简化咱们的开发。AS 上有代码模板的功能,咱们能够经过新建 dart 的代码模板来完成自动生成代码的功能。java
不管是 Mac 仍是 Windows ,均可以经过在 Setting 里面搜索 Templates 找到这个设置。 git
Flutter 的代码模板是经过 Velocity 模板引擎 来实现的,更详细的资料能够参考这里。github
在 File and Code Templates 里,选择 Files 一栏,点击左上角加号,新建名字是 StatelessWidget ,扩展名为 dart 的代码模板。web
模板以下apache
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);
}
}
复制代码
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);
}
}
复制代码
#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} {
}
复制代码
#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} {
}
复制代码
新建文件的时候,就可使用刚才新建的代码模板了。编程
好比新建一个名字为 TestTemplate 使用 StatefulWidget 模板的文件,最终生成的文件里面自动生成的代码以下bash
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);
}
}
复制代码
github微信