背景:每次創(chuàng)建Activity是都是默認(rèn)繼承AppCompatActivity或Activity,但通常我們都有自己定義的BaseActivity,如果用mvp的話(huà)還需實(shí)現(xiàn)接口等。創(chuàng)建的布局也是默認(rèn)使用ConstraintLayout,所以每次都需要改成自己想要的功能。
本文將介紹如何自定義Activity模板并顯示在創(chuàng)建Activity的選項(xiàng)中,效果如圖:

首先找到Android studio的安裝路徑,我的是安裝在D盤(pán),打開(kāi)路徑D:\android-studio\plugins\android\lib\templates\activities,我們可以發(fā)現(xiàn)該目錄下均是上圖顯示的各種Activity模板。我們可以拷貝一份Login?Activity(或EmptyActivity)并命名為DemoActivity(可自定義),然后我們就可以進(jìn)行對(duì)應(yīng)的更改了
打開(kāi)需要更改的模板,顯示如下

globals.xml.flt為全局配置,無(wú)需修改
recipe.xml.ftl為模板操作指令
template為所需參數(shù)配置
首先我們看template文件:


里面的?instantAppActivityHost、instantAppActivityRoute和activityTitle我們沒(méi)用到,刪除。里面的各個(gè)id都將在模板文件中引用。
接下來(lái)打開(kāi)目錄下root\src\app_package,我們可以看到有有兩個(gè)文件,分別為L(zhǎng)oginActivity.java.flt和LoginActivity.kt.ftl。一個(gè)是java模板,一個(gè)是kotlin模板。在這我們僅接受java模板,kt模板大同小異
將LoginActivity.java.flt,名稱(chēng)改成DemoActivity.java.ftl,并打開(kāi),將public class ${activityClass} extends ${superClass} 改成public class ${activityClass} extends BaseActivity,添加import語(yǔ)句。將其他多余的代碼刪掉。${activityClass}即表示引用在剛才template文件id為activityclass的名稱(chēng)(該名稱(chēng)在創(chuàng)建Activity會(huì)提示用戶(hù)填寫(xiě))?
打開(kāi)root/res/layout,我們可以仿照activity_login.xml.ftl改成我們自定義的activity_demo.xml.ftl
接下來(lái)打開(kāi)recipe.xml.ftl:

最后一步,重啟Android studio,創(chuàng)建activity時(shí)就可以看到你自定義的模板啦