在开发过程中我们经常会遇到要按照规则创建多个文件的情况,比如java的mvc、小程序的page、android的actiity、xml、model等情况...
你是不是还在一个文件一个文件的创建?如果是的话,可以看看这个文章..
实现效果
右键创建自定义模版
生成
Activity、ViewModel、Layout XML
实现步骤
1、打开IDEA/AndroidStudio 设置
2、使用模版变量配置主文件
以下示例中,
PACKAGE_NAME
、USER
等是系统提供的,相关提供的变量在底部的Description中有说明。Name、TITLE、LAYOUT
是系统未提供的,会在创建的时候弹出对话框让输入这些变量的值是什么。这个很关键可以看到最底下,我主文件加了个
IF
判断了个LAYOUT_DIR_TO_PAGES
的变量,但是没有做任何处理。这是因为,等下创建子文件的时候需要用到这个变量但是又不想显示它,划重点:子文件共享主文件的变量
Activity 配置:
package ${PACKAGE_NAME};
import androidx.annotation.NonNull;
import com.sftpos.airportclear.R;
import com.sftpos.airportclear.common.BaseTopBarActivity;
import com.sftpos.airportclear.databinding.Activity${NAME}Binding;
import org.jetbrains.annotations.NotNull;
/**
* author ${USER}
* ${TITLE} Activity
*/
public class ${NAME}Activity extends BaseTopBarActivity<Activity${NAME}Binding> {
@Override
public int intiLayout() {
return R.layout.activity_${LAYOUT};
}
public ${NAME}Model model;
@Override
public void initView() {
model = new ${NAME}Model();
bind.setModel(model);
}
@NonNull
@NotNull
@Override
protected String getTitile() {
return "${TITLE}";
}
}
#if (${LAYOUT_DIR_TO_PAGES})
#end
ViewModel配置:
子文件共享主文件变量
package ${PACKAGE_NAME};
/**
* author ${USER}
* ${TITLE} ViewModel
*/
public class ${NAME}Model{
}
Layout XML 文件:
因为android的xml都在
res/layout
目录下,而模版文件的FileName
只能配置相对于主文件的路径,所以我们需要一个变量来控制相对路径,我这里是以我项目中src/pages
为参考,LAYOUT_DIR_TO_PAGES
传入相对于pages目录的../
来定位道res/layout
目录。最终以Layout
变量来设置布局文件名称。可以看到我们还借助
PACKAGE_NAME
来自动绑定了ViewModel
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="model"
type="${PACKAGE_NAME}.${NAME}Model" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
配置结束后,右键目录 选择自定义的模版,输入变量参数就可以了~
以上是Android的一个页面创建模版示范,通过该配置,原本需要创建多个文件、修改各种名称、填入配置代码等繁琐流程都可以一步搞定了。 同理我们可以配置各种项目所需要的模版配置.
补充说明:一些低版本的IDEA、Android Studio不支持多文件模版。我这里试了试2020.3.1的版本开始就有了。
有多少人不知道这个功能的~!来报个道!
作者:何以故
链接:https://juejin.cn/post/7167940027287076901
关注我获取更多知识或者投稿