《Android》『Fragment』- 於程式碼中動態操作 Fragment (動態載入)

《Android Developers 參考文獻》

➥Fragment

 

《簡單介紹》

在上一篇Fragment 的基本用法(靜態載入)中,我們已經知道該如何直接在介面佈局中加入 Fragment,接下來這一篇要來談談如何於程式碼中加入 Fragment,也就是動態載入,透過動態載入的方式,我們可以更加靈活的控管所需的頁面呈現方式,而不會受限於已設定好的 Fragment 中。

 

《FragmentManager 的使用方式》

要實作動態載入 Fragment,首先要知道如何使用 FragmentManager,程式碼片段如下 –

Fragment 動態載入範例

要實作動態載入,首先必須宣告一個 FragmentManager 物件,接著再透過此物件所提供的方法,進一步進行 Fragment 的控管,一些常用的方法條列如下 –

.beginTransaction()

要求 FragmentManager 回傳一個 FragmentTransaction 物件,用以進行 Fragment 的切換。

.setCustomAnimations()

設定切換 Fragment 時所使用的動畫效果。

.add()

將所選擇的 Fragment 加入指定的程式操作介面。

.remove()

將所選擇的 Fragment 從程式操作介面中移除。

.replace()

將指定的 Fragment取代目前程式畫面中的 Fragment。等同於先呼叫 .remove() 再呼叫 .add()

.detach()

將指定的 Fragment 畫面刪除。

.attach()

將之前 detach 的 Fragment 畫面重新建立。

.hide()

將指定的 Fragment 畫面隱藏。

.show()

將之前 hide 的 Fragment 畫面重新建立。

.addToBackStack()

將此次 Fragment 的切換加入系統的 Back Stack,當按下回上頁按鈕時,就會回復到此次切換前的狀態。

.commit()

要求系統開始執行 Fragment 的切換,寫在所有方法的最後。

 

《Fragment 的動態載入方法》

知道 FragmentManager 的宣告與使用方式後,我們就可以開始實作 Fragment 的動態載入,以下透過程式碼片段,列出動態載入的方式。

MainActivity.java

activity_main.xml

首先在 MainActivity 中,宣告了兩個 Fragment 物件,分別是 mFragment01 與 mFragment02,並宣告了一個名為 mFragmentMgr 的FragmentManager 物件 ,用以控管兩個不同 Fragment 之間的切換。

Fragment01.java

這邊要特別注意的是在 onKeyListener() 中所返回的布林值是用來指示你是否已經完成了這個事件、應不應該再進一步處理它。也就是說,返回 true 表示你已經處理了這個事件而且到此為止;返回 false 則表示你還沒有處理它,或者是這個事件應該繼續交給其他 onKey 的偵聽器。

Fragment02.java

從這兩個 Fragment 中我們可以發現,於 MainActivity 中宣告的 public 方法,我們可以在每個 Fragment 中直接呼叫來使用, 像是((MainActivity) getActivity()).BackToFragment01() 以及 ((MainActivity)getActivity()).showResult(),下一篇將來討論如何透過 Interface 於 MainActivity 中控管數個不同的 Fragment

賽肥膩膩

我們是低調到不行的肥膩夫妻檔,一路上一邊吵鬧一邊記錄著生活大小事,最近迷上了宅在家追劇,希望能透過文字將所有看過的影集好好紀錄,整理成屬於我們自己的回憶資料庫。

上 / 下一篇文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *