基于MVVM+Kodein编写的页面模板,一键生成,这酸爽~

前言

在项目中使用框架Arms时候,带有一键生成页面模板,很方面。最近在练习MVVM,于是尝试编写一套页面模板。

概述

IDE 自带很多模板,可以看到内置了很多模板,减少了部分代码的编写,我们可以根据这些模板代码去学习如何定制页面模板
IDE自带模板

模板结构文件分析

EmptyActivity进行分析,模板放置路径为:/plugins/android/lib/templates/activities
BasicActivity](https://img-blog.csdnimg.cn/20190911104820353.png)
可以看到每一个模板都包含如图所示的文件

  • root 资源文件、模板文件
    • src
      • app_package
        • SimpleActivity.kt.ftl
    • res
      • layout
  • globals.xml.ftl 主要用于提供参数
  • recipe.xml.ftl 主要用于生成我们实际需要的代码,资源文件等
  • template.xml parameter标签,主要用于为图形界面提供参数
  • template_balnk_activity.png 缩略图
语法分析
1.template.xml

我们可以看到主要代码如下

<?xml version="1.0"?>
<template
    format="5"
    revision="5"
    name="Empty Activity"   模板名称
    minApi="9"
    minBuildApi="14"
    description="Creates a new empty activity">

    <category value="Activity" />	模板类型
    <formfactor value="Mobile" />
    
	<parameter	参数变量
        id="activityClass"		变量名, 变量的唯一标识
        name="Activity Name"	在创建Activity时展示的变量名
        type="string"	类型
        constraints="class|unique|nonempty"		变量约束
        suggest="${layoutToActivity(layoutName)}"		 推荐值,未修改变量时根据其他变量生成
        default="MainActivity"		默认值
        help="The name of the activity class to create" />		当编辑一个变量时,显示在下方的提示

    <!-- 128x128 thumbnails relative to template.xml -->
    <thumbs>		缩略图
        <!-- default thumbnail is required -->
        <thumb>template_blank_activity.png</thumb>
    </thumbs>

    <globals file="globals.xml.ftl" />
    <execute file="recipe.xml.ftl" />

</template>
2.globals.xml.flt

globals 存储的一些全局变量

<?xml version="1.0"?>
<globals>
    <global id="hasNoActionBar" type="boolean" value="false" />
    <global id="parentActivityClass" value="" />
    <global id="simpleLayoutNa
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条苍老的小鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值