Android Studio生成 Flutter 模板代碼技巧詳解
正文
在開發(fā) Flutter 時,常常需要創(chuàng)建新的頁面或新的 Widget,每次都重新手寫總是很麻煩,這篇文章介紹一些減少手寫樣板代碼的方式。
筆者使用的是 Android Studio,所以這里的技巧都是在 AS 中使用的。
快捷輸入
Android Studio 的 Flutter 插件提供了一些在代碼編輯區(qū)域的快捷輸入,根據(jù)這些輸入可以快速生成模板代碼。最常用的快捷輸入是 stless
和 stful
。
stless
表示生成一個 Stateless 的 Widget。
// | 表示多行光標(biāo),可以輸入類名 class | extends StatelessWidget { const |({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Container(); } }
stful
表示生成一個 Stateful 的 Widget。
// | 表示多行光標(biāo),可以輸入類名 class | extends StatefulWidget { const |({Key? key}) : super(key: key); @override _|State createState() => _State(); } class _|State extends State<> { @override Widget build(BuildContext context) { return Container(); } }
一個小缺點(diǎn):不能自動生成 import,需要額外手動 import material 庫。
AS 文件模板
Android Studio 提供了強(qiáng)大的代碼和文件模板功能,我們可以使用它來創(chuàng)建 Flutter 的模板。
如何創(chuàng)建模板
在文件目錄處,右鍵選擇 New,選擇 Edit File Templates...,會出現(xiàn)一個編輯模板的彈窗。
在彈窗中,點(diǎn)擊下圖紅框中的 + 號,就可以創(chuàng)建一個文件模板了,只需要將模板代碼輸入到右側(cè)的編輯區(qū)域即可。
代碼模板示例
StatelessWidget 模板
#set( $nameparts = $NAME.split("_")) #set( $namepart = '') #set( $classname = '') #foreach( $namepart in $nameparts ) #set( $classname = $classname + $namepart.substring(0, 1).toUpperCase() + $namepart.substring(1)) #end import 'package:flutter/material.dart'; class $classname extends StatelessWidget { // TODO: add state variables, methods and constructor params $classname(); @override Widget build(BuildContext context) { // TODO: add widget build method return null; } }
StatefulWidget 模板
#set( $nameparts = $NAME.split("_")) #set( $namepart = '') #set( $classname = '') #foreach( $namepart in $nameparts ) #set( $classname = $classname + $namepart.substring(0, 1).toUpperCase() + $namepart.substring(1)) #end import 'package:flutter/material.dart'; class $classname extends StatefulWidget { @override _${classname}State createState() => new _${classname}State(); } class _${classname}State extends State<$classname> { // TODO: add state variables and methods @override Widget build(BuildContext context) { // TODO: add widget build method return null; } }
這里最值得注意的是 import 語句前的的一段代碼,它是把小寫下劃線格式的 dart 文件名,轉(zhuǎn)換成大駝峰格式的 dart 類名。比如 hello_world_widget.dart
就會變成 HelloWorldWidget
。
這樣就可以模仿著寫一個自己的模板了,比如筆者針對 Stateless 的 Scaffold 的頁面制作了一個模板:
#set( $nameparts = $NAME.split("_")) #set( $namepart = '') #set( $classname = '') #foreach( $namepart in $nameparts ) #set( $classname = $classname + $namepart.substring(0, 1).toUpperCase() + $namepart.substring(1)) #end import 'package:flutter/material.dart'; class $classname extends StatelessWidget { const $classname({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("$classname"), ), body: Container(), ); } }
如何使用模板
在文件目錄處,右鍵選擇 New,選擇自己創(chuàng)建的模板(如下圖),就會彈出一個彈窗,輸入 dart 文件名即可生成模板代碼文件。
參考文檔
How to make templates in Android Studio
以上就是Android Studio生成 Flutter 模板代碼技巧詳解的詳細(xì)內(nèi)容,更多關(guān)于Android Studio生成Flutter模板的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
android 獲取APP的唯一標(biāo)識applicationId的實(shí)例
下面小編就為大家分享一篇android 獲取APP的唯一標(biāo)識applicationId的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02Android使用gallery和imageSwitch制作可左右循環(huán)滑動的圖片瀏覽器
本文主要介紹了android使用gallery和imageSwitch制作可左右循環(huán)滑動的圖片瀏覽器的示例代碼。具有很好的參考價值。下面跟著小編一起來看下吧2017-04-04Android studio實(shí)現(xiàn)菜單操作
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)菜單操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10Android Jetpack架構(gòu)組件 ViewModel詳解
這篇文章主要介紹了Android Jetpack架構(gòu)組件 ViewModel詳解,ViewModel類讓數(shù)據(jù)可在發(fā)生屏幕旋轉(zhuǎn)等配置更改后繼續(xù)存在,ViewModel類旨在以注重生命周期的方式存儲和管理界面相關(guān)的數(shù)據(jù)。感興趣可以來學(xué)習(xí)一下2020-07-07用Android Studio3.0新功能加快構(gòu)建速度
本文主要介紹了使用Android Studio3.0新功能,加快Android Studio的構(gòu)建速度等相關(guān)做法。2017-11-11AndroidStudio中AVD虛擬機(jī)設(shè)備空間不足調(diào)試過程出現(xiàn)的黑屏問題及解決方案
這篇文章主要介紹了解決AndroidStudio中AVD虛擬機(jī)設(shè)備空間不足調(diào)試過程出現(xiàn)的黑屏問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04