2010-10-14 56 views
27

我已經看到許多在其佈局中使用分層的應用程序。當我談到分層時,我指的是z軸相對於用戶視圖的圖層。一個這樣的應用程序是Craigslist Notification應用程序,其中在listView頂部有一個靠近底部的加號,以允許用戶訪問添加額外的列表項目。佈局層? Z軸?

在我的情況下,我成功地使用GestureListener來翻頁。效果不錯,但是我想在頁面的邊緣疊加一個透明的左右箭頭png,如果有頁面在用戶當前所在的頁面的後面或前面。

我已經搜索過,但不太清楚如何讓一個Layout的2個元素同時消耗相同的空間。在這種情況下,您將擁有頁面的內容(佈局),並且需要該佈局的(z軸)頂部的內容。

有人能指出我正確的方向嗎?

回答

81

嘗試使用FrameLayout。

FrameLayout總是將事物置於另一個之上並始終參考左上角,因此您需要在FrameLayout內部使用單獨的佈局將對象放置在屏幕上所需的位置。

請記住,android會按照它們列出的順序將東西放入您的佈局中,因此請將對象放置在您想要靠近顯示器頂部的佈局的底部。

下面是一個簡單的例子(不要忘了適當的XML標題數據添加到頂級節點):

<FrameLayout> 
    <RelativeLayout> 
    <!-- Place the objects you want on the bottom here --> 
    </RelativeLayout> 


    <RelativeLayout> 
    <!-- Place the objects you want on the top here --> 
    </RelativeLayout> 
</FrameLayout> 
13

小除了前面的回答: 以防止底「層」的onclick事件設置屬性clickable =「true」to top「layer」

<RelativeLayout 
.... 
android:clickable="true"/> 

否則,可以通過頂層按下帶有「點擊」事件的按鈕。

當我試圖用半透明背景的RelativeLayout圖層來覆蓋UI時,我發現了這個問題。