android 之@+id与@id以及引用中用@+id/的原因

来源:互联网 发布:北控集团工资待遇知乎 编辑:程序博客网 时间:2024/06/17 15:38

               在Android xml文件中大家都知道一般在定义一个id时用@+id/id名字,而在引用一个id,比如在已定义的控件的左边,就要用到@id/已定义的控件。


       详细的解释童鞋们可以看这篇文章http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1019/443.html


      今天下了一份代码,在看到xml文件时,突然很疑惑,下面是作者的xml


     

<com.byl.clipheadphoto.clip.ClipImageLayout    android:id="@+id/id_clipImageLayout"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:layout_above="@+id/rl_botom"    android:layout_below="@+id/title_bar" /><RelativeLayout    android:id="@id/rl_botom"    android:layout_width="fill_parent"    android:layout_height="50dp"    android:layout_alignParentBottom="true"    android:background="#FFFFFF" >    <Button        android:id="@+id/id_action_clip"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:layout_centerVertical="true"        android:layout_margin="10dp"        android:background="@null"        android:padding="5dp"        android:text="确 定"        android:textColor="#18B4ED"        android:textSize="16sp" /></RelativeLayout>


看到作者的写法时感到很疑惑,怎么引用也用到了@+id/,查资料也没找到具体解释,一篇文章中解释@+id 新增一个资源id
而在上面的布局文件中,id_clipImageLayout必须在rl_botom上面,而android:layout_above="@+id/rl_botom"
时,rl_bottom还没有定义,直接@id/rl_bottom会报错,找不到资源rl_bottom,但是xml文件中rl_bottom和id_clipImageLayout
位置种种原因不能调整,怎么办?上面说了@+id/是定义资源,在R.java中生成独一的int型变量,那么就可以直接引用时用
@+id/,等到rl_bottom定义时@+id/会发现已经定义,就不再R.java文件中生成,或者可以用
 android:id="@id/rl_bottom"一样可以的。








1 0
原创粉丝点击