![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yNyIGN1U2YyYDM0gjZ2EWM2UDO5EDM1EWY5QzY5cTZ08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
原作者: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”
輸入框中應用以下代碼:
活動模闆編輯器的右側還有其他設定選項,但我們暫時将其忽略。最後,編輯器的外觀如下:
image.png
接下來,我們要做的就是儲存并完成。這裡解釋一下我們應用的實際模版代碼:為
Test
類和
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。
以上就是文章的所有内容,希望它對你有用!
---END---
推薦閱讀:
Android自定義滑動刻度進度條
Android如何擷取WebView内容高度
Android之自定義EditText光标和下劃線顔色
每一個“在看”,我都當成真的喜歡