例如,在创建以下内容时:
<TextView
style="@style/blah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<include
layout="@layout/footer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
可能的原因:style
和layout
是在编译时处理的,但我不能100%确定。
编辑:
AndroidManifest.xml
文件中的package
也是如此。
发布于 2012-03-13 20:36:16
看一下LayoutInflater
的源代码,似乎没有一个明显的原因说明为什么它在include标记中是layout
而不是android:layout
。我猜由于include标签是布局中的一个特例,所以不需要android前缀。
include标记在编译时不会被处理,否则它现在不会在LayoutInflater
中,不是吗;)
至于style
,我不确定,但我认为原因是命名空间属性是在XML
中定义的,并在View
构造函数中作为AttributeSet
传递。但是,样式不是在该集合中传递的,而是作为一个单独的参数传递的。因此,我认为理由是style
是一个始终存在的参数,而名称空间前缀属性是动态的,并且是View
的自定义属性。
因此,我没有明确的答案,但可能会有所帮助;)
https://stackoverflow.com/questions/9674647
复制相似问题