原作者:Jovche Mitrejchevski 地址: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
:github.com/pranaypatel… ,它提供了一堆很酷很實用的活動模版,如果你有不錯的活動模版,該庫也歡迎提交PR。
以上就是文章的所有內容,希望它對你有用!
如果你喜歡我的文章,就關注下我的公眾號 Android技術雜貨鋪 、 簡書 或者Github! 微信公眾號:Android技術雜貨鋪
簡書:www.jianshu.com/u/35167a70a…
GitHub:github.com/pinguo-zhou…