2011-08-15 38 views
11
<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> 

有什麼建議嗎?RelativeLayout的layout_above給出「找不到資源」錯誤

回答

26

據我所知,第一次在佈局xml中使用id時,它需要在它前面加一個+號。

Declaring Layout文檔:

的加號(+)表示,這是一個必須創建並添加到我們的資源(在R.java文件)的新資源名稱。

因此,在ListView佈局的第一個btn_4引用中添加'+',您可以從Button佈局的android:id屬性中刪除不必要的'+'。

1

當你聲明相對佈局,你必須使用android:layout_above="@+id/layoutToBeAbove"

否則,系統不知道你在什麼指向。

該聲明將指向相同的資源。

希望這有助於!

+0

小心分享爲什麼你低估了15個月大的答案? – Codeman

2

聲明ListView LIST_1 後宣佈該Button btn_4因爲它試圖引用它在android:layout_above="@id/btn_4"

+0

XML是一種標記語言,沒有「執行順序」,因爲它是無狀態的。它在哪裏宣佈並不重要,它只需要有正確的標記。 – Codeman

+2

呃? XML就是你所做的。我可以自上而下地解析它(如果我想維護)。它*確實解決了這個問題。想象一下,如果A可以宣稱自己高於B,B宣稱自己高於A. –

+1

這是正確的答案 –

相關問題