原作者:Jovche Mitrejchevski
地址:http://mrw.so/5bWdIl
译者:依然范特稀西
什么是自定义活动模版?(注:很多文章翻译成实时模版,我认为活动模版更为贴切,下文都将用活动模版->Live templates)在Android Studio 中,有一个概念,就是只要需要输入关键字,就可以在任何需要的地方将任何文本内容块作为模板插入,这就是活动模版,通过使用活动模版,我们可以将常用的一些构造插入代码中。
Live templates 对我们有什么帮助?
活动模版非常方便,可以提高我们编写代码的速度。随着时间的推移,我们在项目中写着很多相同或者相似的模版代码,如:循环、条件控制、声明,甚至整个类模板(例如RecyclerView.Adapter
,RecyclerView.ViewHolder
等等)。一些人在进行直播编码演示时广泛使用活动模板。它节省了大量时间,并且消除了许多可能的错误。
如何新建一个活动模版
要配置活动模版,我们需要打开Android Studio 中的Live Templates
设置页:Settings
-> Editor
-> Live Templates
, 在实时模版页,我们可以看见所有可用的活动模版,可以编辑它们,也可以创建新的活动模版。
要定义新模版,在窗口的右侧,点击+
按钮,这里有2个可选项:Live Template
和 Template group
。
继续创建一个新的分组,并将它命名为test
,该分组将拥有用于编写测试的活动模板,因此该名称很应景。
下一步,我们选中新创建的分组test
,然后点击右边的+
按钮,就可以为这个分组中创建一个新的活动模版。
选择此选项后,在窗口底部,我们可以看到活动模板编辑器
这里,首先我们必须设置abbreviation(缩写)
, 缩写类似于关键字,它将触发模板在编辑器中的插入。我们还可以为它设置一个简洁贴切的描述。描述有何作用呢?例如,如果我们对不同的模板有类似的缩写,则描述对于稍后在代码中使用它们时,选择正确的模板非常有帮助。在本示例中,我们以test
作为缩写,以JUnit test function
作为描述。
接下来,我们将定义一个上下文,新模版将在该上下文中可用,在模版编辑器窗口底部,这里有一个黄色警告⚠️No applicable context
, 意思就是没有可用的上下文
我们点击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
:https://github.com/pranaypatel512/AndroidLiveTemplates ,它提供了一堆很酷很实用的活动模版,如果你有不错的活动模版,该库也欢迎提交PR。
以上就是文章的所有内容,希望它对你有用!