簡評:使用 "@tools:sample/*" 資源來讓 RecyclerView(或 ListView)的效果預覽更方便。
相信在大多數的 Android 開發中都會和 RecyclerView(或者 ListView)打交道。常有的一個問題就是在編碼時,怎麼方便的看到和調整每一個 item 的顯示效果。html
固然啦,有經驗一的開發者確定都知道用 tools:namespace 來幫忙,今天要介紹的固然不僅是這麼簡單。android
首先,假設咱們要實現的效果相似下面這樣(每一個 item 左邊還有個頭像):json
這裏就是經過 tools:text 來在 Android Studio 的 Preview 視圖中直接顯示一些簡單內容(ImageView 也可使用 tools:src)。dom
<TextView android:id="@+id/name" ... tools:text="Mark Allison"/>
如今,在 Android Studio 3.0 或以上版本中咱們有了更好的方法來在開發時直接顯示一些示例數據 - 那就是使用 "tools:sample/" 中提供的數據。*佈局
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout ...> <ImageView android:id="@+id/avatar" ... tools:src="@tools:sample/avatars" /> <TextView android:id="@+id/name" ... tools:text="@tools:sample/full_names" /> <TextView android:id="@+id/city" ... tools:text="@tools:sample/cities" /> <TextView android:id="@+id/date" ... tools:text="@tools:sample/date/ddmmyy" /> <TextView android:id="@+id/description" ... tools:text="@tools:sample/lorem/random" /> </android.support.constraint.ConstraintLayout>
效果:編碼
固然,這些自帶的數據極可能沒辦法知足你的需求(好比只有英文),咱們還能夠本身建立 Sample 數據:spa
點擊以後,文件實際所在的位置:code
添加頭像圖片(這裏用的是 Android 矢量圖,也能夠是其餘格式的圖片):xml
<ImageView android:id="@+id/avatar" ... tools:src="@sample/avatars" />
更棒的地方在於,咱們還能夠經過 JSON 文件的方式來組織咱們的數據。好比,建立一個名爲 users.json 的文件:htm
{ "data": [ { "city": "北京", "avatar": "@sample/avatars", }, { "city": "上海", "avatar": "@sample/avatars" }, { "city": "廣州", "avatar": "@sample/avatars" }, { "city": "深圳", "avatar": "@sample/avatars" } ] }
item 的部分佈局代碼:
<ImageView android:id="@+id/avatar" ... tools:src="@sample/users.json/data/avatar" /> <TextView android:id="@+id/city" ... tools:text="@sample/users.json/data/city" /> ...
此外,定義的這些 sample data 不會被打包到 APK 中,所以沒必要擔憂會增長應用的體積。
官方文檔:https://developer.android.com...
英文原文:Tool Time – Part 1 & Tool Time – Part 2