Android布局在XML中定义,并在根元素中声明此命名空间:
xmlns:android="http://schemas.android.com/apk/res/android"
Run Code Online (Sandbox Code Playgroud)
元素示例:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
android前缀而不是省略它xmlns="http...?有趣的问题!它确实感觉有点奇怪.
com.android.widget.TextView(com.android.widget.*总可以截断).此类的java命名空间将在编译时自动解析,因此此处不欢迎表示完全限定的Java命名空间的xml命名空间.但是属性可以映射到Element的任何继承的java类.因此,属性上的命名空间允许继承.这样做主要是因为布局描述了Java对象,而Google在这里使用XML命名空间机制来帮助将Layout映射到Java对象.因此,Java命名空间世界和XML命名空间世界之间存在冲突.它还允许我们开发人员子类化元素,添加我们自己的属性,而不必担心平台的下一个版本可能会添加具有相同名称的属性.
请参阅Dianne Hackborn对此博客文章的两篇回复,他是一位着名的在谷歌工作的安卓工程师:http://www.elharo.com/blog/software-development/xml/2008/09/16/android-xml-怪事/
| 归档时间: |
|
| 查看次数: |
4525 次 |
| 最近记录: |