经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
站长资讯

Android Studio自定义模板 写页面竟然可以如此轻松

作者:habao 来源: 日期:2018-3-29 1:19:31 人气:

  上一篇文章,已经初步对Android Studio的模板有了初步的介绍与使用,以及一些开源模板的推荐:

  学习编写模板最好的方式呢,就是参考IDE中已经提供的最简单的模板,那么在Android Studio中最简单的activity模板就是:Empty Activity了,我们打开该模板文件,首先对文件结构有个直观的了解,如图:

  看到这个界面,大部分属性都应该能才出来了,我们重点看parameter,界面上每一个紫色框出来的部分都对应一个parameter,部分属性介绍:

  这个部分对应界面还常好理解的,大家可以简单的修改一些字符串,或者添加一个parameter,重启AS,看看效果。

  通过名称可以猜到它是用于定义一些全局的变量,可以看到其内部有global标签,分别定义id,type,默认值。

  copy :从root中copy文件到我们的目标目录,比如我们的模板Activity需要使用一些图标,那么可能就需要使用copy标签将这些图标拷贝到我们的项目对应文件夹。

  merge : 合并的意思,比如将我们使用到的strings.xml合并到我们的项目的stirngs.xml中

  instantiate : 和copy类似,但是可以看到上例试将ftl-java文件的,也就是说中间会通过一个步骤,将ftl中的变量都换成对应的值,那么完整的流程是

  open:在代码生成后,打开指定的文件,比如我们新建一个Activity后,默认就会将该Activity打开。

  在介绍instantiate时,涉及到了freemarker,不可避免的需要对它进行简单的介绍。

  目前我们已经基本了解了一个模板其内部的文件结构了,以及每个文件大致包含的东西,我们简单做个总结:

  我们已经基本了解模板生成的大致的流程以及涉及到的文件,大致了解了我们生成的源码或者xml文件,需要经过:

  看一眼就知道大概的意思了~有一定的编程经验,即使不知道这个叫freemarker,对于这些简单的语法还是能看懂的。

  可以看到其内部包含很多变量,这些变量的值一般来源于用户输入和global.xml.ftl中预定义的值,经过recipe.xml.ftl中instantiate标签的处理,将变量换成实际的值,即可在我们的项目的指定,得到我们期望的Activity。

  看到这,最起码理解了,当我们选择创建不同的Activity类型,最终得到的不同的效果其中的原理原来在这。

  大家copy一个现有的模板,再其基础上修改即可,比如本例是在Empty Activity基础之上修改的。

  通过的学习我们知道template.xml中可以定义我们创建面板的控件布局等,本例我们创建Activity的界面如下:

  经过前面的学习应该很好理解,每个parameter对应界面上的一个控件,控件的这个id最终可以得到用户输入值,后面会用于渲染ftl文件。

  本例中最终需要生成Fragment和Activity,也就是说对应会有两个ftl文件分别用于最终生成这两个类。

  注意不是.java文件而是.ftl文件,可以看到的代码基础上和Java代码没什么区别,实际上就是Java代码,把可变的部分都换成了${变量名}的方式而已。

  看完用到的类和布局文件的ftl,大家心里应该有个底了,这模板几乎就和我们平时写的Java类一样,只是根据用户在新建Actiivty界面所输入的参数进行替换一些变量或者做一些简单的操作而已。

  可以看到包含多个instantiate标签,该标签很明显是将我们内置的ftl为当前项目有中的java类。

  恩,这里没用到merge标签,不过也很简单,假设你fragment上显示的文本,你可以定义到一个strings.xml里面,最后你需要将这个strings.xml合并到当前项目的strings.xml就可以使用merge标签(内置模板很多用了merge标签,参考下,抄一抄就搞定了)。

  本文我们首先详细介绍了一个模板文件夹下各个文件以及其内部的标签的作用,然后通过一个具体的实例,来演示如何编写一个activity模板。

  当然,文中一些细节并没有谈到,对于这些不要担心,你有什么需求,你就想哪个内置的模板好像有类似的需求,看它的实现,copy它的相关代码改一改就好了,没有必要去被各种文件的编写,这种东西copy修改就好了。

  测试过程中,需要重启Android Studio,如果有问题,记得查看Event Log面板的信息。

  此外,模板这个东西我觉得最好的集大家的力量,所以我在github建立了一个组织仓库,,如果你对模板有兴趣或者想要将自己的模板文件与他人共享,可以加入这个组织,然后分享你的代码,本文的例子也在其中。

  Android 优雅的为RecyclerView添加HeaderView和FooterView

  本文已授权微信号:鸿洋(hongyangAndroid)在微信号平台原创首发。 转载请标明出处:

  Android Studio的工程模板在安装目录的“\plugins\android\lib\templates\gradle-projects”文件夹下,这里面包含了导入工程模板、新建工程模板、新建...

  在使用AndroidStudio进行代码编写的过程中,随着使用时间的增加和各种插件的使用,我们发现了很多快捷快速敲代码的方式。如:somethind.log可以直接打印出Log日志的内容Log.d...

  本文gif图比较多,可能会导致页面加载缓慢,请大家耐心等待今天我们来学习下Android Studio这款软件的一些秘密,这些就是Template,就是我们输出一些特定的字符就可以实现自动编写一大堆...

  一、Android Studio的模板所在径{Android Studio}/plugins/android/lib/templates/activities 自制模板若无错误,直接拷至此目录下即...

  1.概述最近有很多人反馈,有些哥们不喜欢看文字性的东西,还有一些哥们根本就不知道我在搞啥子,那么以后我就采用博客加视频的方式,我们可以选择看视频:

  在我们创建Android工程,新建Activity时,Android Studio都会创建一些模板文件,比如创建Activity 可以选择BlankActivity,EmptyActivity,Log...

  1.概述最近有很多人反馈,有些哥们不喜欢看文字性的东西,还有一些哥们根本就不知道我在搞啥子,那么以后我就采用博客加视频的方式,我们可以选择看视频:

  d5gt.cn 指纹膜 共享纸巾机 赛车群 欢威 www.k6c8j.cn www.81pdp8.cn 特价团 德国塔诺五金

推荐文章