Android中的xmlns:解析

在Android中,目前我們碰到的xmlns一共有三種:


xmlns:android="http://schemas.android.com/apk/res/android"

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

xmlns:app="http://schemas.android.com/apk/res-auto"




android

命名空間android用於 Android 系統定義的一些屬性。

這個主要作用是在運行的時候那些控件的屬性都是通過它來識別的,如果上面你寫錯了,不會有任何問題,但是在運行的時候就會有問題,提示你沒有指定寬度等什麼。這個是不用聯網的。


tools

根據官方定義,tools命名空間用於在 XML 文檔記錄一些,當應用打包的時候,會把這部分信息給過濾掉,不會增加應用的 size,說直白點,這些屬性是爲IDE提供相關信息。


app(自定義名稱)

命名空間app用於我們應用自定義的一些屬性。


Android自定義控件的屬性,在xml中使用自己自定義的attr的時候,其中有一步就是要自定義一個xml的命名空間後然後再給自定義屬性賦值


現在發現不知道什麼時候開始Android把這個改了,現在發現可以統一用:
xmlns:app="http://schemas.android.com/apk/res-auto"


而不是原來的:
xmlns:app="http://schemas.android.com/apk/App的Package名"
還有人提到在作爲lib被使用的時候,也應該用res-auto



如果你http://schemas.android.com/apk/後面寫的是res/包名,那就是相關包名下的自定義屬性,而res-auto就是所有的自定義包名。



使用時可以爲:

android:..

tools:text   tools:visibility    tools.src    tools.background

app:...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章