正文

在开发 Flutter 时,常常需要创建新的页面或新的 Widget,每次都重新手写总是很麻烦,这篇文章介绍一些减少手写样板代码的方式。

笔者使用的是 Android Studio,所以这里的技巧都是在 AS 中使用的。

快捷输入

Android Studio 的 Flutter 插件提供了一些在代码编辑区域的快捷输入,根据这些输入可以快速生成模板代码。最常用的快捷输入是 stlessstful

stless 表示生成一个 Stateless 的 Widget。

// | 表示多行光标,可以输入类名
class | extends StatelessWidget {
  const |({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

stful 表示生成一个 Stateful 的 Widget。

// | 表示多行光标,可以输入类名
class | extends StatefulWidget {
  const |({Key? key}) : super(key: key);
  @override
  _|State createState() => _State();
}
class _|State extends State<> {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

一个小缺点:不能自动生成 import,需要额外手动 import material 库。

AS 文件模板

Android Studio 提供了强大的代码和文件模板功能,我们可以使用它来创建 Flutter 的模板。

如何创建模板

在文件目录处,右键选择 New,选择 Edit File Templates...,会出现一个编辑模板的弹窗。

在弹窗中,点击下图红框中的 号,就可以创建一个文件模板了,只需要将模板代码输入到右侧的编辑区域即可。

代码模板示例

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 文件名,转换成大驼峰格式的 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,选择自己创建的模板(如下图),就会弹出一个弹窗,输入 dart 文件名即可生成模板代码文件。

参考文档

How to make templates in Android Studio

以上就是Android Studio生成 Flutter 模板代码技巧详解的详细内容,更多关于Android Studio生成Flutter模板的资料请关注Devmax其它相关文章!

Android Studio生成 Flutter 模板代码技巧详解的更多相关文章

  1. Flutter中文教程-Cookbook

    Flutter中文网的Cookbook中包含了在编写Flutter应用程序时常见问题及示例。设计基础使用主题共享颜色和字体样式Images显示来自网上的图片用占位符淡入图片使用缓存图Lists创建一个基本list创建一个水平list使用长列表创建不同类型子项的List创建一个gridList处理手势处理点击添加Material触摸水波效果实现滑动关闭导航导航到新页面并返回给新页面传值从新页面返回数据给上一个页面网络从网上获取数据进行认证请求使用WebSockets

  2. Android studio – Faild to resolve:com.android.support:design:26.0.1错误

    我有一个错误叫:我的androidstudio版本是3.0beta1.我的gradle文件如下:我想把“设计”放到我的项目中,但我不能这样做.我该怎么做?解决方法尝试改变和或者不要更改为bulidToolsversion更改依赖项

  3. 无法在Android Studio上运行应用程序项目

    我是AndroidStudio的新手,我在Ubuntu14.04LTS(64位)上安装了它.当我在AndroidStudio中打开项目时,我的项目文件标记为红色,运行按钮旁边的调试配置按钮标有红色X,如下图所示:请告诉我如何解决这个问题.解决方法一个简单的方法:>关闭当前打开的项目以返回欢迎屏幕.>从欢迎屏幕中选择导入项目.>选择要导入的EclipseADT项目.

  4. 外部AndroidManifest.xml不会出现在项目视图窗格下

    我一直在使用AndroidStudio和Gradle开发Android项目.我的项目的AndroidManifest.xml位于外部文件夹下.我使用build.gradle文件中的以下代码指向它:一切都很好,项目编译和运行,除了在使用项目视图窗格时我无法在项目结构下找到AndroidManifest.xml文件.也许我需要在build.gradle文件中添加其他东西?解决方法首先–我没有看到任何理

  5. android-studio – 未配置Dart SDK

    Initializinggradle…

  6. 如何在Android Studio 1.0.0中更改logcat字体大小?

    我只找到了改变AndroidStudio中字体颜色的方法.解决方法Logcat只使用ConsoleFont的字体设置.要在AndroidStudio中更改此设置,请转到:Settings->Editor->Color&Fonts->ConsoleFont

  7. android-studio – 在Android Studio中放置gitIgnore文件的位置?

    我将此文件复制到AndroidStudio中的gitIgnore文件中,但是当我在gitHub上推送该项目时,我的gitnigore文件如下所示:所以,我复制到AndroidStudio的文件不在这里.问题是什么?解决方法通常在创建新项目时会为您生成gitignore文件.这是正确的.gitignore文件.这是你必须把它.

  8. android-studio – 安卓工作室更新后的问题

    解决方法我在AndroidStudio中花了很多时间来处理这个问题.看来这个问题是由用于编译项目的java版本的差异引起的.最后,在“项目结构”设置窗口中,我在SDK位置选项卡中启用了“使用嵌入式JDK(推荐)”.并快乐编译:)

  9. android – 编译项目时错误25.0.0

    我有一个项目,运行良好,直到约会.今天突然面临这些问题:我的sdk也没有25.0.0,havnt仍然下载它,而且我的编译版本是23.0.2然后你是否搜索25.0.0?编辑:我现在面临的确切问题是我正在使用在gradleforfacebook.并且在这个库中它使用25.0.0所以我该如何避免呢?

  10. 安卓 – 从一个扑动的应用程序拨打电话

    或者有更好的选择从我的应用程序拨打电话?

随机推荐

  1. Flutter 网络请求框架封装详解

    这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. Android单选按钮RadioButton的使用详解

    今天小编就为大家分享一篇关于Android单选按钮RadioButton的使用详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

  3. 解决android studio 打包发现generate signed apk 消失不见问题

    这篇文章主要介绍了解决android studio 打包发现generate signed apk 消失不见问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  4. Android 实现自定义圆形listview功能的实例代码

    这篇文章主要介绍了Android 实现自定义圆形listview功能的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. 详解Android studio 动态fragment的用法

    这篇文章主要介绍了Android studio 动态fragment的用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. Android用RecyclerView实现图标拖拽排序以及增删管理

    这篇文章主要介绍了Android用RecyclerView实现图标拖拽排序以及增删管理的方法,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

  7. Android notifyDataSetChanged() 动态更新ListView案例详解

    这篇文章主要介绍了Android notifyDataSetChanged() 动态更新ListView案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

  8. Android自定义View实现弹幕效果

    这篇文章主要为大家详细介绍了Android自定义View实现弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. Android自定义View实现跟随手指移动

    这篇文章主要为大家详细介绍了Android自定义View实现跟随手指移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. Android实现多点触摸操作

    这篇文章主要介绍了Android实现多点触摸操作,实现图片的放大、缩小和旋转等处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部