RelativeLayout的layout_above给出“找不到资源”错误

时间:2011-08-15 14:30:09

标签: android android-layout android-relativelayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
  <ListView
      android:layout_above="@id/btn_4"    <-- this line error: No resource found
      android:layout_width="match_parent"
      android:layout_height="200dp" />
  <Button android:id="@+id/btn_4"         <-- I declare the id here
      android:layout_alignParentBottom="true"
      android:layout_height="wrap_content"
      android:layout_width="match_parent" />
</RelativeLayout>

有什么建议吗?

3 个答案:

答案 0 :(得分:27)

据我了解,第一次在布局xml中使用id时,它需要在它前面加上一个+号。

来自Declaring Layout文档:

  

加号(+)表示这是一个必须创建并添加到我们资源的新资源名称(在R.java文件中)。

因此,在ListView布局的第一个btn_4引用中添加一个'+',你可以从Button布局中的android:id属性中删除不必要的'+'。

答案 1 :(得分:3)

声明相对布局时,必须使用android:layout_above="@+id/layoutToBeAbove"

否则,系统不知道你指的是什么。

此声明将指向同一资源。

希望这有帮助!

答案 2 :(得分:2)

ListView btn_4声明Button btn_4之后声明android:layout_above="@id/btn_4" list_1 ,因为它试图在{{1}}中引用它。