原做者: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…