Android:为什么声明控件和控件赋值要分开

2025-02-22 14:16:34
推荐回答(1个)
回答1:

区别是:这两个是声明的不同的命名空间,android的是系统的,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

所以说区别就是如果你ht=tp:/=/schemas.android.com/apk/后面写的是res/包名,那就是相关包名下的自定义属性,而res-auto就是所有的自定义包名。