2014-12-05 118 views
0

我遇到了一個問題,我解決了問題。我的應用程序有兩種類型的片段。當應用程序啓動時,帶有主菜單的片段被添加到我用作片段容器的FrameLayout。這個片段佔據整個屏幕。然後,當我選擇菜單中的一個項目時,應將相應的片段加載到容器中,替換菜單。但是,這個片段只能從左邊開始佔據屏幕的四分之一,並且外部空間將被其他片段使用。如何輕鬆地切換碎片容器?

我在考慮製作3 FrameLayouts,一個用於左側,一個用於右側,另一個用於整個屏幕,但是這會對片段事務產生問題,因爲我將不得不標註哪些片段是在哪裏,並用手去除它們。

基本上我需要的是一些方法來改變我的碎片是否被加載到一個佔滿全屏的容器中,或一個只佔用屏幕一部分的容器。我可能可以做到這一點與大量的痕跡和錯誤和一些代碼,但我敢打賭,有一個非常簡單的方法來做到這一點,我錯過了機器人。

+0

**「...因爲我將不得不保持哪些片段在哪裏並用手去除它們的標籤」**:這就是在使用片段時應該如何使用的,這就是爲什麼它們如此多才多藝。當然,多功能性的代價是,使用的碎片越多,不同的碎片佈局越複雜,「後面的代碼」就越複雜。使用Fragments並不是強制性的,如果你對處理複雜的Fragment容器佈局感到不舒服,那麼就按照howettl的建議使用不同的Activities。 – Squonk 2014-12-06 01:40:15

回答

2

與其試圖將這些碎片動態加載到各個容器中,我會建議有兩個不同的Activities

這聽起來像主菜單片段將永遠只出現在自己的全屏。所以,請完整填寫Activity(我們稱之爲MainMenuActivity)。

第二個活動將有兩個FrameLayout s作爲內容,其中一個佔據屏幕的四分之一,另一個佔據剩餘的3/4。在選擇主菜單選項後加載第二個活動,並在第二個活動的onCreate()中填充片段。

從第二項活動中按下後退按鈕將使用戶返回到MainMenuActivity