小技巧:Android Stdio 、IDEA 代码模版多文件生成功能

2,291 阅读2分钟

在开发过程中我们经常会遇到要按照规则创建多个文件的情况,比如java的mvc、小程序的page、android的actiity、xml、model等情况...

你是不是还在一个文件一个文件的创建?如果是的话,可以看看这个文章..

实现效果

  • 右键创建自定义模版
  • 生成Activity、ViewModel、Layout XML

20221120111402.gif

实现步骤

1、打开IDEA/AndroidStudio 设置

image.png

2、使用模版变量配置主文件

  • 以下示例中,PACKAGE_NAMEUSER等是系统提供的,相关提供的变量在底部的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

image.png

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

image.png

<?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的版本开始就有了。

有多少人不知道这个功能的~!来报个道!

Thanks Youe~

8/300