Android Fragment系列學習筆記之一

來源:互聯網
上載者:User

一、Fragment是什嗎?

片段布局。

Fragment是Activity中的一部分內容。我們可以在一個單獨的Activity中使用多個Fragment,用來構建UI Panel,可以反覆使用。可以想像它是Activity中的一個模組,它有自己的生命週期,並且可以接收使用者的一些輸入事件。當Activity啟動並執行時候,可以將它從Activity當中添加或者移除,就好比將Fragment看作是Activity的子視窗。
注意,一個Fragment都是要嵌套在Activity之中的,並且Fragment的生命週期是直接受到主Activity的生命週期的影響。例如,Activity暫停時候,Activity中所有的Fragment都會處於暫停狀態,當Activity被消毀的時候,所有的Fragment都同樣被消毀。
當Activity在啟動並執行時候,可以將每一個Fragment當作一個獨立的,我們可以去添加或移除它,當然這裡面也會有一個事務的概念,Activity同時還具備回退棧的概念,回退棧即按BACK鍵Fragment的一個回退機制。而Fragment的回退棧是由誰去管理的呢?是由Activity去管理的,當使用者去執行Fragment的時候,每執行一個,我們需要將它加入到一個回退棧中。因為這個Fragment是屬於Activity的,Activity會幫我們去記錄回退棧的狀態資訊。
二、建立Fragment
需要聲明一個類去繼承Fragment,去處理Fragment中的一些回調方法。 如果聲明一個Fragment,至少要實現如下幾個方法:
1、onCreate();
當fragment被建立的時候會調用。可以在這個方法中去初始一些變數需要在這裡面去初始化。這個方法一般只調用一次,不會反覆被調用。\
2、onCreateView();
系統會調用它來畫UI的控制項,即在這之中需要載入一個View。為了畫一個UI控制項給Fragment,需要在這個方法中返回一個View。通常是一個布局。可以返回null,如果這個Fragment不提供UI的話。
3、onPause()

系統第一次調用它的時候,指示使用者可能會離開這個Fragment,可是並不意味著Fragment會被銷毀,實際上通常在這裡面需要提交一些改變了的資料,即使用者要離開這個Fragment了,我們應該做資料的提交,有可能這個使用者離開之後就不再回來了。

三、將Fragment加入到Activity當中

1、在Activity的Layout中,添加一個LinearLayout,然後將Fragment拖到這個LinearLayout上放手,選擇自己已經寫好的Fragment類名即可,然後運行。(這種方式是不用編碼,用xml直接來做的)使用Fragment的一個最大的好處就是可以設計出一個非常複雜的UI布局了。

2、通過代碼編寫的方式將一個Fragment添加到一個ViewGroup當中,即添加到Activity中。

在Activity啟動並執行任意時刻,我們都可以去加一個Fragment,加到Activity的布局當中。這樣就需要在ViewGroup中去放置一個Fragment。這種方式是開發中最常用的。 為了能在Activity啟動並執行時候載入一個Fragment,如add、remove、replace一個Fragment,就必須使用到FragmentManager。
3、FragmentManager
FragmentManager是對片段進行管理的,它可以進行add、remove、replace,即移除、添加或替換Fragment。將Fragment添加到哪裡去呢?可以將Fragment加到某一個指定的布局,或者是替換到某一個布局上,這也是為什麼要在Activity中的布局檔案中指定一個布局id的原因。

4、為什麼需要使用FragmentTransaction?
Activity當中使用FragmentTransaction對象,主要是為了在Acivity中add、remove、replace一個Fragment之後,通過調用fragmentTransation的commit()方法,去改變對布局的影響。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.