2011-03-05 54 views
0

我有一個合併佈局,其中包含幾個包含。我需要是 能夠相對位置。頂部和底部的很容易,因爲 您可以使用android:layout_gravity =「bottom」或 android:layout_gravity =「top」。現在,有沒有辦法定位第三個 包括相對於頂部(右下方)的那個? 。我讀過你 可以包裝在一個RelativeLayout中,但不會打敗使用合併的目的?Android佈局:合併如何定位包含

<merge 
    xmlns:android="http://schemas.android.com/apk/res/android"> 


    <com.testmerge.TitleBar 
     id="@+id/titlebar" 
     android:layout_width="fill_parent" 
     android:layout_height="35dip" 
     android:layout_gravity="top" 
       android:paddingTop="0dip" 
     android:background="@drawable/title_bar" 
    /> 

    <com.testmerge.StatusBar 
     android:layout_width="fill_parent" 
     android:layout_height="35dip" 
     android:paddingTop="0dip" 
     android:background="@drawable/title_bar" 
    /> 

    <com.testmerge.OkCancelBar 
     android:layout_width="fill_parent" 
     android:layout_height="60dip" 
     android:layout_gravity="bottom" 
       android:paddingTop="0dip" 
     android:background="@drawable/header_bkgrnd" 
    /> 

    <!--"#AA000000"--> 
</merge> 
+0

請將Android標籤添加到與Android編程/問題相關的所有問題。這樣更多的人將能夠看到/找到你的問題。 – Shade 2011-03-05 14:36:28

回答

1

好吧,爲了簡化您的佈局定義XML,創建合併標記是爲了消除在視圖層次結構中創建的額外複雜性。

如果您參考merge explanation page,您將看到在幀佈局之前添加的TextView如何佔用一些空間。剩下的空間會自動填充一個FrameLayout,以便可用空閒空間在任何時間點都有具體邊界。如果我們添加另一個Layout,佔用該空間,則自動創建的FrameLayout變得無用。該標籤通過向自動創建的FrameLayout 添加子項來解決該問題,就好像該佈局已經在我們的XML中聲明一樣。這就是<merge />標籤的用途。

對於您的情況,您可能需要RelativeLayout,因爲您的應用程序顯然需要更多的複雜性。我相信<merge />標籤不適合您。