原做者:Jovche Mitrejchevski 地址:mrw.so/5bWdIl 译者:依然范特稀西git
什么是自定义活动模版?(注:不少文章翻译成实时模版,我认为活动模版更为贴切,下文都将用活动模版->Live templates)在Android Studio 中,有一个概念,就是只要须要输入关键字,就能够在任何须要的地方将任何文本内容块做为模板插入,这就是活动模版,经过使用活动模版,咱们能够将经常使用的一些构造插入代码中。github
活动模版很是方便,能够提升咱们编写代码的速度。随着时间的推移,咱们在项目中写着不少相同或者类似的模版代码,如:循环、条件控制、声明,甚至整个类模板(例如RecyclerView.Adapter
,RecyclerView.ViewHolder
等等)。一些人在进行直播编码演示时普遍使用活动模板。它节省了大量时间,而且消除了许多可能的错误。api
要配置活动模版,咱们须要打开Android Studio 中的Live Templates
设置页:Settings
-> Editor
-> Live Templates
, 在实时模版页,咱们能够看见全部可用的活动模版,能够编辑它们,也能够建立新的活动模版。微信
要定义新模版,在窗口的右侧,点击+
按钮,这里有2个可选项:Live Template
和 Template group
。app
继续建立一个新的分组,并将它命名为test
,该分组将拥有用于编写测试的活动模板,所以该名称很应景。编辑器
下一步,咱们选中新建立的分组test
,而后点击右边的+
按钮,就能够为这个分组中建立一个新的活动模版。函数
选择此选项后,在窗口底部,咱们能够看到活动模板编辑器测试
这里,首先咱们必须设置abbreviation(缩写)
, 缩写相似于关键字,它将触发模板在编辑器中的插入。咱们还能够为它设置一个简洁贴切的描述。描述有何做用呢?例如,若是咱们对不一样的模板有相似的缩写,则描述对于稍后在代码中使用它们时,选择正确的模板很是有帮助。在本示例中,咱们以test
做为缩写,以JUnit test function
做为描述。编码
接下来,咱们将定义一个上下文,新模版将在该上下文中可用,在模版编辑器窗口底部,这里有一个黄色警告⚠️No applicable context
, 意思就是没有可用的上下文spa
咱们点击Define
按钮,来定义一个上下文
能够看到,如上图所示,咱们选择了Kotlin Class
做为模版的上下文,也就意味着,这个模版在 Kotlin 类文件中可用。
接下来,让咱们继续进行操做,为给定的缩写(也就是test
)设置咱们实际想要的模板。在编辑器的“Template text”
输入框中应用如下代码:
@org.junit.jupiter.api.Test
fun $EXPR$() {
org.junit.jupiter.api.Assertions.assertEquals($EXPR1$, $EXPR2$)
}
复制代码
活动模板编辑器的右侧还有其余设置选项,但咱们暂时将其忽略。最后,编辑器的外观以下:
接下来,咱们要作的就是保存并完成。这里解释一下咱们应用的实际模版代码:为Test
类和assertEquals()
方法使用彻底限定的名称:
org.junit.jupiter.api.Test
org.junit.jupiter.api.Assertions.assertEquals
复制代码
当咱们在编辑器中使用此模板时,Android Studio将自动导入并补全代码。
让咱们来看看它是什么样子,打开一个任意Kotlin
class 文件(由于咱们设置的上下文是 Kotlin class
文件),在类体中,输入相应的模版缩写:test
正如咱们看到的,Android Studio 弹出了一个小窗口,咱们能够选择其中的可用模版,由于我已经为JUnit4
测试功能预先设置了一个活动模板,因此我能够看到两个可用的选项,也能够选择我想使用的选项。
只需按⏎(Enter)或⇥(Tab),Android Studio就会在编辑器中插入所选模板,并将光标置于模板的第一个$ EXPR $
变量(在本例中为函数名)。
请务必注意,当光标在特定的$ EXPR $
变量上键入内容时,键入的文本将以相同的名称出如今全部变量中。在咱们的示例中,咱们总共有三个变量,在每个变量后面加了一个数字来区别:$ EXPR $
,$ EXPR1 $
和$ EXPR2 $
。实际上,数字不用做下一个/上一个跳转的顺序,而是只是用来区分它们。
最近,我发现了一个开源项目叫AndroidLiveTemplates
:github.com/pranaypatel… ,它提供了一堆很酷很实用的活动模版,若是你有不错的活动模版,该库也欢迎提交PR。
以上就是文章的全部内容,但愿它对你有用!
若是你喜欢个人文章,就关注下个人公众号 Android技术杂货铺 、 简书 或者Github! 微信公众号:Android技术杂货铺
简书:www.jianshu.com/u/35167a70a…
GitHub:github.com/pinguo-zhou…