Android 中Xml里面的id重名问题
来源:互联网 发布:mac上好用的课程表 编辑:程序博客网 时间:2024/05/18 01:19
在Android的xml中@+id 可以重名,这里"+"的含义是:如果没有定义id则可以定义该id,如果定义过,则为空。
情况一:同个一个Xml文件中的同名
在同个一个Xml文件的中若同名了,则前一个有效,而后一个无效,即后一个Null。如:
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView1" android:layout_alignRight="@+id/textView1" android:layout_marginBottom="58dp" android:layout_marginRight="18dp" android:text="Button1" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button" android:layout_centerVertical="true" android:text="Button2" />
前一个Button有效(即 android:text="Button1" ),后一个无效。
情况二:在不同的Xml 文件中的同名
在同个一个Xml文件的中若同名了,两者都有效的。
当android的工程越来越大。xml文件越来越多时,避免不了两个xml文件中同样的组件使用同样的id名字,gen目录下的R.java文件中,有关id的声明都在id的class中,即public static final class id{};当两个xml文件中同样的组件,比如Button,有可能很多个文件中,都有id="@+id/Button",开始以为在Java类中引用会重复的id造成程序的不识别。
在不同的layout文件下(通过setContentView设置),可以通过findViewBy(id)找到该layout文件下的相应控件,不会发生冲突。
这个问题非常地容易理解:因为在Android的框架设计中,每一个控件都隶属于一棵控件树,每个控件都被其父控件所管理与调配,而根控件是一个容器控件,所有的子控件都是构造在这个根控件之上,这样并形成了一个控件树的控件域,在这个控件域中是不允许重名的,超出了这个控件域则这些控件的ID是无效的,也就是说在容器控件中的子控件是不允许重名的,而不在同一容器控件中的两个控件重名也无所谓。
原文地址:点击打开链接
0 0
- android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- Android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- android 中Xml里面的id重名问题
- 【转载】android 中Xml里面的id重名问题
- Android 中Xml里面的id重名问题
- Android xml文件中ID重名问题
- android 中不同的Xml中id可以重名吗?
- 如何避免android layout.xml 布局文件中重名id的错误
- 关于Android项目打包过程中因为id重名导致的无法打包的问题
- JQuery中元素id名和变量名重名出现的问题
- 注意android xml里面的id和值得区别
- Android中的ID能否重名
- Android定制权限重名引起的问题
- mybatis 中属性重名的问题。
- Android中XML布局文件@+id和@id的区别
- 【原创】android 布局xml中@+id 与@id的区别
- 分区标签<div>
- 定义列表标签<dl>
- 图文混编效果
- 超链接<a>标签
- 超链接的应用——锚链接
- Android 中Xml里面的id重名问题
- 字符串应用_验证注册账户时用名和密码是否符合要求
- 制作网站底部版权信息
- 表单的基本结构和语法
- htm 和 html 有什么区别?
- HTML多种基本标签的使用示例
- 字符串处理_验证文件名和邮箱地址是否合法
- 字符串的拆分split
- 字符串应用_统计字符串中某个字符的个数