Android 開發(fā)之:Tools 屬性

直到今天創(chuàng)建項目的時候, 出現(xiàn)tools:showIn="@layout/activity_main"才想起要學(xué)習(xí)記錄下 Tools屬性的相關(guān)使用请垛。這個Tools 是如此好使用宗收,我卻未能善用,簡直抱歉混稽。它提高Android 應(yīng)用開發(fā)的效率荚坞、還可以提高代碼質(zhì)量。


==

首先介紹布局文件中的tools 屬性各淀。
如果用 Android Studio 創(chuàng)建一個簡單的示例項目碎浇,在生成的布局文件中會有這么一行內(nèi)容:

xmlns:tools=”http://schemas.android.com/tools

在** tools 命名空間下定義了一些屬性就是我們要介紹的 tools 屬性奴璃。 顧名思義城豁,這些屬性都是為編輯工具準(zhǔn)備的,具體來說就是 Android Studio 和布局文件編譯器(AAPT**)雳旅。 在開發(fā)程序的時候间聊,通過這些屬性來告訴編輯器一些額外的信息哎榴。

tools:ignore
這個屬性是為** Lint 準(zhǔn)備的,屬性的取值為逗號分隔的 Lint 問題 ID**尚蝌。告訴 Lint 在檢測代碼的時候驼壶,這些問題不用檢測喉酌。例如:

<string name=”show_all_apps” tools:ignore=”MissingTranslation”>All</string>

tools:targetApi
這個屬性也是為 Lint 準(zhǔn)備的。和 Java 注解 @TargetApi 一樣般妙。取值可以為 Android 版本代號或者對應(yīng)的整數(shù)值相速。例如:

<GridLayout tools:targetApi=”ICE_CREAM_SANDWICH” >

tools:locale
Lint 和 Android Studio 都會使用該屬性。取值為 語言和地區(qū)縮寫苫拍。如果設(shè)置該值為非英文類型,則 Studio 不會執(zhí)行拼寫檢查骏令。該屬性通常出現(xiàn)在資源文件的根元素上垄提。用來告訴 Lint 該文件應(yīng)該用在那種語言環(huán)境中铡俐。 例如:values/strings.xml 文件 設(shè)置該屬性為 es

<resources xmlns:tools=”http://schemas.android.com/tools” tools:locale=”es”>

上面的設(shè)置告訴工具,默認(rèn)的文件夾中的資源為西班牙語而不是英語吏够。
tools:context
Lint 和 Android Studio 都會使用該屬性稿饰。出現(xiàn)在布局根元素中露泊,用來告訴工具該布局文件和哪個 Activity 關(guān)聯(lián)。這樣在設(shè)計的時候侣姆,布局編輯器會使用相關(guān)聯(lián)的 Activity 的 theme 來渲染該布局文件捺宗。取值為 manifests 文件中的 activity name 值一樣川蒙。例如:

<android.support.v7.widget.GridLayout
  xmlns:android=”http://schemas.android.com/apk/res/android” 
  xmlns:tools=”http://schemas.android.com/tools”
  tools:context=”.MainActivity” … >
</android.support.v7.widget.GridLayout>```
**tools:layout**
該屬性由 Android Studio 使用畜眨。通常用在 <fragment> 元素中,用來告訴編輯器該 fragment 使用的是哪個布局文件贰健。
```code=xml 
<fragment
  android:name=”com.example.master.ItemListFragment”
  tools:layout=”@android:layout/list_content” />

tools:listitem / listheader / listfooter
Android Studio 使用該屬性來渲染列表元素伶椿。可以用在 AdapterView 的子 View 中导狡。例如 <ListView>烘豌、<GridView>看彼、<ExpandableListView> 等。這樣在設(shè)計的時候标锄,編輯器可以用指定的內(nèi)容來顯示預(yù)覽內(nèi)容茁计。

<ListView
  android:id=”@android:id/list”
  android:layout_width=”match_parent”
  android:layout_height=”match_parent”
  tools:listitem=”@android:layout/simple_list_item_2″ />

tools:showIn
Android Studio 使用該屬性。通常用在被其他布局文件引用的<include> 布局文件中践剂。告訴編輯器該布局文件用在另外一個布局文件中娜膘。例如

<?xml version=”1.0″ encoding=”utf-8″?>
<TextView       
  xmlns:android=”http://schemas.android.com/apk/res/android”
  xmlns:tools=”http://schemas.android.com/tools”
  android:text=”@string/hello_world”
  android:layout_width=”wrap_content”
  android:layout_height=”wrap_content”
  tools:showIn=”@layout/activity_main” />

tools:menu
Android Studio 使用該屬性竣贪。用在布局文件的根元素中,告訴編輯器在 ActionBar 上的菜單內(nèi)容匕争。取值為定義的 menu 的 id,多個 id 用逗號分隔甘桑;還可以使用定義 menu 的 xml 文件的名字跑杭。
例如:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout 
  xmlns:android=”http://schemas.android.com/apk/res/android”
  xmlns:tools=”http://schemas.android.com/tools”
  android:orientation=”vertical”
  android:layout_width=”match_parent”
  android:layout_height=”match_parent”
  tools:menu=”menu1,menu2″ />

tools:actionBarNavMode
Android Studio 使用該屬性艘蹋。用在布局文件的根元素中,告訴編輯器在 ActionBar 上的導(dǎo)航模式屑迂。取值為 “standard”惹盼、 “l(fā)ist” 和”tabs” 之一手报。

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout 
  xmlns:android=”http://schemas.android.com/apk/res/android”
  xmlns:tools=”http://schemas.android.com/tools”
  android:orientation=”vertical”
  android:layout_width=”match_parent”
  android:layout_height=”match_parent”
  tools:actionBarNavMode=”tabs” />

除了上面這些屬性以外,標(biāo)準(zhǔn)的 Android 布局屬性都可以當(dāng)做 tools 屬性來使用掩蛤。布局編輯器用這些屬性來選擇布局文件枉昏。這些屬性被稱之為 “設(shè)計時布局屬性”,他們只被布局編輯器使用揍鸟,編譯后的代碼中不存在這些內(nèi)容兄裂。

例如:常用于即時預(yù)覽填充 tools:text="weixiong_wang"等(最常用,最好用)阳藻。

參考:
http://blog.chengyunfeng.com/?p=755&utm_source=tuicool&utm_medium=referral

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晰奖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腥泥,更是在濱河造成了極大的恐慌匾南,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛔外,死亡現(xiàn)場離奇詭異午衰,居然都是意外死亡冒萄,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瞎访,“玉大人播演,你說我怎么就攤上這事≈薮叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵读恃,是天一觀的道長疹吃。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么核畴? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任丑孩,我火速辦了婚禮,結(jié)果婚禮上仗岖,老公的妹妹穿的比我還像新娘真友。我一直安慰自己桅打,他們只是感情好鹅搪,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布甫题。 她就那樣靜靜地躺著,像睡著了一般炎码。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上歉闰,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天既绩,我揣著相機與錄音蚕键,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛频丘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亮钦,長吁一口氣:“原來是場噩夢啊……” “哼蜡娶!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起宿接,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蚣旱,失蹤者是張志新(化名)和其女友劉穎沟涨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裹赴,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡春宣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年簸搞,在試婚紗的時候發(fā)現(xiàn)自己被綠了寺擂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垦细。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叹谁,靈堂內(nèi)的尸體忽然破棺而出饲梭,到底是詐尸還是另有隱情憔涉,我是刑警寧澤国旷,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布屡久,位于F島的核電站唇聘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阱持。R本人自食惡果不足惜夭拌,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸽扁,春花似錦蒜绽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至骡和,卻和暖如春相赁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背慰于。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工钮科, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婆赠。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓绵脯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親页藻。 傳聞我的和親對象是個殘疾皇子桨嫁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容