2010-09-28 26 views
0

我正在創建一些根元素爲merge的佈局。在merge元素內我有一個ScrollView包含TextView。下面是該文件:使用合併與佈局給一個文件錯誤,沒有其他錯誤。相同的代碼!

<?xml version="1.0" encoding="utf-8"?> 
<merge 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <ScrollView 
    android:id="@+id/scroll" 
    android:padding="6dp" 
    android:layout_below="@id/headingLayout" 
    android:layout_above="@id/tabsLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/aboutTxt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    </ScrollView> 
</merge> 

我得到2個錯誤:沒有資源相匹配的layout_belowlayout_above名字我已經把

我有另一種佈局的xml文件,包括非常相似的成分,有些其中也參考@id/headingLayout@id/tabsLayout。這兩個XML佈局文件中不含有名字headingLayouttabsLayout

組件爲什麼一個佈局文件中沒有關於這些引用和其他佈局文件錯誤呢?我做錯了什麼,應用程序會像我期望的那樣構建和運行,直到我將此合併添加到另一個佈局爲止?

我甚至試圖從工作佈局文件中複製xml,發現它給出了相同的錯誤,但是我的新佈局文件必須出錯。我曾嘗試清潔,重建,開/閉日食..

+0

如果它是文件中唯一的頂級標籤,爲什麼需要'merge'標籤內的'ScrollView'? – 2010-09-28 15:14:10

+0

以及如果我的'TextView'變得太大,我不需要滾動? – binnyb 2010-09-28 15:50:45

回答

0

哇,這是一個奇怪的修復,我找到了這個。我在上面的問題(給出錯誤的那個)給出的佈局被命名爲about.xml。沒有錯誤的佈局也包括merge,並且對其他xml組件的引用被命名爲home.xml。包含引用組件的xml文件被命名爲base_layout.xml

在日食Package Explorer下的layout文件夾中,項目按字母順序列出。所以home.xml文件出現在base_layout.xml之後,因此可以引用其中的組件。由於about.xml之前在base_layout.xml之前,about.xml無法引用base_layout.xml中的任何內容。

所以我剛剛更名爲base_layout.xmlaaa_base_layout.xml所以它會是第一個,所有的錯誤消失。