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

               在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值