爲了在XML文件中記錄一些信息,Android專門定義了名爲tools的XML命名空間。在應用打包的時候這些信息會被自動去掉,因此不會影響運行和下載的包大小。命名空間的URI是http://schemas.android.com/tools
,通常以tools做爲前綴:android
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > ....
該文檔記錄了咱們當前tools屬性的用法.( 注意:這可能會隨時改變 )app
這個屬性能夠在任何XML元素上設置,其值是一個lint問題ID的逗號分割的列表,設置後該XML元素以及其子元素都將被遞歸的忽略。編輯器
<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>
用途: Lint工具
該屬性和Java類裏的 @TargetApi
註解的做用是同樣的:它可讓你指定元素使用的API的級別,其值既能夠是整數也能夠是代號名稱佈局
<GridLayout tools:targetApi="ICE_CREAM_SANDWICH" >
用途: Lintspa
該屬性能夠在資源文件的根元素上設置,能夠設置一個合適的語言以及一個可選的地區。這樣可讓tools知道資源文件裏的字符串應用的是什麼語言。好比,values/strings.xml
能夠有以下根元素:設計
<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="es">
如今咱們知道,默認values文件裏的字符串使用的是西班牙語,而不是英語。
用途: Lint, Studio (能夠在非英語的資源文件中禁用拼寫檢查)code
該屬性一般被設置在佈局文件的根元素上,記錄佈局文件所關聯的Activity(設計時,一個佈局可能會被多個部門引用)。這能夠用來讓佈局編輯器知道其默認的主題,由於主題通常都是在清單文件裏和與之關聯的Activity裏定義,而不是在佈局文件裏。和在清單文件中指定activity的類同樣,你也可使用.開頭設置。xml
<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity" ... >
用途:Studio & Eclipse中的佈局編輯器以及Lint。遞歸
此屬性一般設置在<fragment>標籤中,用來記錄在設計時,你想看到的呈現的佈局(運行時,將會由標籤中給出的fragment類來決定)。
<fragment android:name="com.example.master.ItemListFragment" tools:layout="@android:layout/list_content" />
用途: Studio & Eclipse的佈局編輯器
這些屬性能夠被用在一個<ListView>(或者<GridView>,<ExpandableListView>這些AdapterView的子View)上,用於在設計時指定list元素、list頭、list底的佈局。工具就會填充一些虛擬的數據顯示一個有表明性內容的列表。
<ListView
android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@android:layout/simple_list_item_2" />
用途: Studio & Eclipse的佈局編輯器
該屬性須要設置在被另一個佈局包含的一個佈局的根元素中。容許你設置包含該佈局的佈局文件,而且在設計時,這個被包含的佈局將會在其外部的佈局裏渲染呈現。這容許你在上下文裏查看和編輯佈局。須要Studio 0.5.8及其之後版本支持。更多信息請參考發佈公告
<?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" />
用途: Studio佈局編輯器
該屬性設置在佈局的根元素上,做用是配置在Action Bar顯示的菜單。Android Studio經過和該佈局關聯的Activity(經過tools:context找到)的onCreateOptionsMenu()方法嘗試找出在Action Bar使用的菜單。者容許你覆蓋搜索和已確認狀態的菜單。該屬性值是一個逗號分割的id列表(不須要@id和其餘任何前綴)。你也能夠用不帶.xml擴展名的xml菜單的文件名。必須是0.8.0及其以後的Studio版本才支持。
<?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" />
用途: Studio佈局編輯器
概述行設置在佈局的根元素上,以配置Action Bar的導航模式。有」standard」, 「list」 以及 「tabs」這三個值可供選擇,須要0.8.0及其以後的Studio版本支持。
<?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" />
用途: Studio佈局編輯器