當我們在Android中編寫基於xml的佈局時,我們使用字符串「xmlns:android =」http://schemas.android.com/apk/res/android「。爲什麼我們在android xml文件中指定命名空間?
從我讀過的書中可以看出,這是一個命名空間,但我們用這個爲什麼的鏈接根本不存在什麼是使用這個
當我們在Android中編寫基於xml的佈局時,我們使用字符串「xmlns:android =」http://schemas.android.com/apk/res/android「。爲什麼我們在android xml文件中指定命名空間?
從我讀過的書中可以看出,這是一個命名空間,但我們用這個爲什麼的鏈接根本不存在什麼是使用這個
從developer.android.com
的xmlns:??機器人
定義Android命名空間,該屬性應該始終設置爲「http://schemas.android.com/apk/res/android」。
xmlns:android是用於標識這個xml用於android,而不是用於其他功能。
命名空間唯一標識代碼/庫。如果我編寫一個使用所有相同名稱的api,例如android api,區分我的api和android api的唯一方法是使用android命名空間或我的。
這是事實,該鏈接不exists..But我們正在使用的申請宣告該命名空間... 在XML中,命名空間來避免命名衝突的字符串。 您可以參考此鏈接更多的澄清 http://www.w3schools.com/XML/xml_namespaces.asp
您可能需要做一些XML一般閱讀。 w3.org's XML documentation可能是你最好的。
一般來說,使用名稱空間是爲了避免元素名稱之間發生衝突。例如,如果我創建了定義元素<person>
的XML架構,並且我的朋友創建了一個單獨的XML架構,該XML架構定義了一個完全不同的元素,該元素也恰好被命名爲<person>
,我們可能會發生衝突。如果我試圖在XML文件中引用這兩個元素,那麼將無法確定哪個元素是哪個元素。但是,如果我們使用名稱空間,myNamespace:person明顯不同於myFriendsNamespace:person。
定義名稱空間的標準是使用URI,這就是您在Android定義中看到的原因。它並不一定意味着該架構存在於該位置,這意味着該URI是該名稱空間的唯一名稱。
我的意思是,這是命名空間的定義,但它沒有涉及原因。把它這樣,如果我把名字空間作爲空白,沒有任何工作。爲什麼? – bharal 2018-02-28 23:13:24
正如你要在你的XML中引用android定義鍵。因此,資源纔會認同,這就是爲什麼我們在每一個Android的XML文件中定義命名命名空間中的關鍵,如: - "xmlns:android="http://schemas.android.com/apk/res/android".
現在XML可以使用Android的標籤等等指的按鍵: -
<FrameLayout
android:id="@+id/id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color">
使用android命名空間,您可以找到密鑰id,layout_width和layout_height。請致電here。
我的意思是,這是命名空間的*定義*,但它不涉及* why *。把它這樣,如果我把名字空間作爲空白,沒有任何工作。爲什麼? – bharal 2018-02-28 23:12:21