Fragment可以配合平板和手機因畫面大小的不同而調整,更方便的是可以重複利用來降低開發成本,接下來要時做一個簡單的Fragment範例。
首先建立兩個Layout檔 fragment1.xml和fragment2.xml:
再來建立兩個自訂的Fragment類別Fragment1和Fragment2:
onCreate()是Fragment剛被建立,可以用來設定物件資源初始值;onCreateView()是Fragment即將可以顯示,可以用來設定佈局;onActivityCreated()是代表Activity已經建立並將開始執行,這時可以抓取在Fragment上的UI元件。由於Fragment2的程式碼與Fragment1幾乎一樣,所以省略。
再來是主介面的Layout:
再來是MainActivity:
使用兩個Button來切換Fragment,要切換Fragment必須依照FragmentTransaction來做替換、增加和刪除,這裡只用到替換。replace()所要帶的第一個參數是將Fragment放入哪個容器,以這個範例來說,容器就是id為fragent_container的LinearLayout,位置在主介面Layout檔,第二個參數則是你所宣告的Fragment物件,最後執行是使用commit(),沒使用這方法即使寫完replace()也不會幫你做替換,務必要加上。
結果:
首先建立兩個Layout檔 fragment1.xml和fragment2.xml:
再來建立兩個自訂的Fragment類別Fragment1和Fragment2:
onCreate()是Fragment剛被建立,可以用來設定物件資源初始值;onCreateView()是Fragment即將可以顯示,可以用來設定佈局;onActivityCreated()是代表Activity已經建立並將開始執行,這時可以抓取在Fragment上的UI元件。由於Fragment2的程式碼與Fragment1幾乎一樣,所以省略。
再來是主介面的Layout:
再來是MainActivity:
使用兩個Button來切換Fragment,要切換Fragment必須依照FragmentTransaction來做替換、增加和刪除,這裡只用到替換。replace()所要帶的第一個參數是將Fragment放入哪個容器,以這個範例來說,容器就是id為fragent_container的LinearLayout,位置在主介面Layout檔,第二個參數則是你所宣告的Fragment物件,最後執行是使用commit(),沒使用這方法即使寫完replace()也不會幫你做替換,務必要加上。
結果:
一開始
按下FRAGMENT1
按下BUTTON1可切換TextView的文字
按下FRAGMENT2
按下BUTTON2可切換TextView的文字