Android xmlns

XML Namespace

xmlns

xmlns是XML语言中表示Namespace位置的标签,被定义在元素的开始标签中时。
标准语法为:

其中分为两部分:

  • prefix:前缀
  • Namespace URI:所关联的Namespace位置

在Android xml布局文件头部的
xmlns:android="http://schemas.android.com/apk/res/android"
即Android API的Namespace。

xmlns:app

在引用Library的第三方View时,我们需要在XML布局文件头部添加
xmlns:app="http://schemas.android.com/apk/res-auto"
或者
xmlns:app="http://schemas.android.com/apk/res/包名"

在ADT 17.0.0(2012.3)更新中,添加了对Library自定义View的自定义attribute的支持。
通过使用http://schemas.android.com/apk/res-auto标识XML NameSpace,而不是以往的包名。

为什么要使用xmlns:app

在xml布局文件中,我们需要标识
xmlns:android="http://schemas.android.com/apk/res/android"
指定我们所用到的attribute。但由于API升级,有些新添加或者更新的attribute对低版本API无法支持或者效果不一致。
xmlns:app其实并不仅限于Library,而是针对整个App:无论是你引用的Library中的attribute,还是你自定义的全局attribute都有效。
因此,我我们引用的appcompat-v7Library使用和xmlns:android相同的自定义attribute(例如:android:showAsAction,添加于API11)。显然,使用android:showAsAction的话,低版本API设备是无法支持的,而使用app:showAsAction则能都支持所有API版本。
通过使用app:showAsAction,我们便使用到了appcompat-v7的自定义attribute,其定义在appcompat-v7res/values/attrs.xml



    ...

    
    

        ...

        
        
            
            
            
            
            
            
            
            
            
            
        

        ...

    
    
    ...


你可能感兴趣的:(Android xmlns)