在res-auto和com.package.name - android之间命名xml的区别

时间:2014-09-24 02:28:47

标签: android xml

我见过自定义xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/com.package.custom"

这两个人之间有什么区别?

  1. 后者只是指向默认位置吗?
  2. 前者是否指向参考库?
  3. 感谢。

1 个答案:

答案 0 :(得分:9)

如果我们在项目中添加新的自定义视图及其属性,请在布局的开头添加:

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

如果新的自定义视图位于链接到项目的库项目中,则添加以下内容:

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

注意:此问题已在ADT修订版17+中修复。对于任何服务或活动,请按如下方式声明命名空间:

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

后缀res-auto将在构建时替换为实际项目包,因此请确保设置属性名称以尽可能避免冲突。