android - studio - tools layout




Android佈局文件中的“工具:上下文”是什麼? (5)

從最近的ADT新版本開始,我已經註意到佈局XML文件中的這個新屬性,例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".MainActivity" />

什麼是“工具:上下文”用於?

它甚至如何知道寫在那裡的活動的確切路徑? 它是否在清單中查看應用程序的包?

它僅限於擴展上下文的類還是僅限於活動? 它可用於ListView項目等?


1.Description

tools: context = "activity name"它不會被打包到apk 。只有ADT佈局編輯器在你當前的佈局文件中設置相應的渲染上下文,顯示你當前佈局渲染的上下文是活動名稱對應的活動,if manifest文件中的活動將設置主題,然後ADT佈局編輯器將根據Theme.Means呈現當前佈局,如果您將MainActivity設置為主題。 Light(其他),然後你在視覺佈局管理器中看到背景控制什麼應該是主題。 光看起來像。只有向你展示你看到的是你得到的結果。

有些人看到會明白一些,有些人看到也不知道,我會加幾句解釋:

2.Sample

以一個簡單的tools:text為例,多一些形象,便於進一步理解tools:context

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="sample name1" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="sample name2" />

TextView 1採用了android: text ,並在TextView 2中使用tools:text ,在Layout編輯器的右側將顯示sample name1sample name2兩種字體,如果在運行代碼後編譯,生成apk ,終端只顯示sample name1 ,不顯示sample name2的字樣。 你可以嘗試運行,看看效果如何。

3.具體描述

1. tools: context = "activity name"它不會被打包到apk (理解:相當於這個被評論,編譯沒有效果。)

2.只有ADT佈局編輯器(即為模擬器右側上面的圖標)在當前佈局文件中設置相應的渲染上下文時,當前XML渲染上下文的佈局是活動名稱對應的活動,如果清單文件中的活動設置了主題,則ADT佈局編輯器將根據Theme.Means呈現當前佈局,如果您將MainActivity設置為主題。 (理解:你添加的tools: context = "activity name" ,XML佈局是渲染指定的activity,在manifest文件中建立一個Theme,如上圖右邊的模擬器Theme style也會跟著相應的變化到主題。)

4.summary

綜上所述,這些屬性主要針對上述正確的工具,模擬器調試時顯示狀態,並且編譯不起作用,


“工具:上下文”是可以促進開發框架中的XML創建佈局的設計屬性之一。 此屬性用於顯示開發框架選擇哪個活動類來實現佈局。 使用“工具:上下文”,Android Studio會自動為預覽選擇必要的主題。

如果您想了解更多有關Android應用程序開發的其他屬性和實用工具,請參閱此評論: http://cases.azoft.com/4-must-know-tools-for-effective-android-development/ : http://cases.azoft.com/4-must-know-tools-for-effective-android-development/


它為開發工具提供了上下文,以及在何處使用此佈局,以便這些工具可以為開發人員提供更好的幫助,例如:

更準確地呈現預覽,將託管活動及其主題納入更智能的助理,例如上述快速修復工具:上下文完全是可選的。 沒有它,開發工具可以並且可以工作。 這些工具可能會降低對您的幫助,但這是您的選擇。

工具:上下文 - 或工具名稱空間中的任何屬性 - 在運行時不會產生影響。 我沒有檢查過,但我希望在打包APK時他們甚至會被剝離,因為它們在運行時沒有用處。


根據tools.android.com/tech-docs/tools-attributes

工具:上下文

此屬性通常在佈局XML文件的根元素上設置,並記錄佈局與哪個活動相關聯(在設計時,因為佈局顯然可以被多個佈局使用)。 這將例如由佈局編輯器用來猜測默認主題,因為主題在Manifest中定義並且與活動相關聯,而不是與佈局相關聯。 您可以使用與清單中相同的點前綴來指定沒有完整應用程序包名稱作為前綴的活動類。

<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中的佈局編輯器


這很可能是UI編輯器用於呈現佈局的活動(它將根據活動找到正確的主題)。 here (在文章的中間;訂閱該頁面以保持最新)。





android-tools-namespace