A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
本帖最后由 xiaoqing 于 2015-12-6 20:26 编辑



在平常开发用,经常会用到layout文件来编写界面,但是有时候会报找不到id的错误,这是什么原因造成的呢?下面深圳的老师来回答一下问题。






学生问题:+id问题,有时候用+id,有时候用id,到底怎么使用?老师回答:
很多人使用id的时候,以为只要是前面用id,那么它相对的布局都不要用加号。
  1.   <TextView
  2.         android:id="@+id/tv"
  3.         android:layout_above="@id/aa"
  4.         android:layout_width="match_parent"
  5.         android:layout_height="match_parent"/>
  6.      
  7.     <TextView
  8.         android:id="@+id/aa"
  9.         android:layout_width="match_parent"
  10.         android:layout_height="match_parent"/>
  11.      
  12.      <TextView
  13.         android:id="@+id/bb"
  14.         android:layout_above="@id/aa"
  15.         android:layout_width="match_parent"
  16.         android:layout_height="match_parent"/>
复制代码


这种是对知识的误读。
在程序读取xml的时候是顺序读取的。所以正确的原则应该是这样的。
下面的组件:如果用的是above,而你的above对象是在这个组件的下面(代码位置)。
那么此时用+id,如果是出现在他的前面,那么above属性里面面应该是用id(不用加号)
正确的代码是这样的:


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.      
  7.      
  8.     <TextView
  9.         android:id="@+id/tv"
  10.         android:layout_above="@+id/aa"
  11.         android:layout_width="match_parent"
  12.         android:layout_height="match_parent"/>
  13.      
  14.     <TextView
  15.         android:id="@+id/aa"
  16.         android:layout_width="match_parent"
  17.         android:layout_height="match_parent"/>
  18.      
  19.      <TextView
  20.         android:id="@+id/bb"
  21.         android:layout_above="@id/aa"
  22.         android:layout_width="match_parent"
  23.         android:layout_height="match_parent"/>
  24.      
  25.       

  26. </RelativeLayout>
复制代码

+id的正确意思是“如果没有这个id,则创建”意思。在平时开发中,要注意这个差别。




深圳校区除了全国独有问答网,就业老师面试服务,还有更多神秘惊喜等着你,咨询热线:0755-66689855




1 个回复

正序浏览
@+id是创建view的id,@id是引用此id的view
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马