關於Fragment

  • 可以把 Fragment 想象成 Activity 的模塊,它擁有自己的生命週期、接收輸入事件,可以在 Acvitity 運行過程中添加或者移除。

  • 創建 Fragment 時,必須重寫 onCreateView() 回調方法來定義佈局。

  • Activity中如果用到Fragment 應該繼承自 FragmentActivity ,也可以繼承AppCompatActivity,AppCompatActivity 是 FragmentActivity 的子類。

動態添加Fragment

  • 要執行添加或移除 Fragment 等事務,你必須使用 FragmentManager 創建一個 FragmentTransaction,後者可提供用於執行添加、移除、替換以及其他 Fragment 事務的 API。

  • 如果 Activity 中的 Fragment 可以移除和替換,你應在調用 Activity 的 onCreate() 方法期間爲 Activity 添加初始 Fragment(s)。

  • 以上這兩點了解一下就可以,現在關於FragmentTransaction的操作都在AS源碼裏面,我們不需要去管。在項目中的做法是需要幾個Fragment就動態添加幾個,然後在Activity的佈局中使用viewPager,兩者結合。(首頁中用FragmentTabHost和TabWidget結合做)。

用一個 Fragment 替換另一個 Fragment

  • 請注意,當你執行替換或移除 Fragment 等 Fragment 事務時,最好能讓用戶向後導航和“撤消”所做更改。要通過 Fragment 事務允許用戶向後導航,你必須調用 addToBackStack(),然後再執行 FragmentTransaction。

  • 當你移除或替換 Fragment 並向返回堆棧添加事務時,已移除的 Fragment 會停止(而不是銷燬)。如果用戶向後導航,還原該 Fragment,它會重新啓動。如果你沒有向返回堆棧添加事務,那麼該 Fragment 在移除或替換時就會被銷燬。

與其他 Fragment 交互

  • 通常 Fragment 之間可能會需要交互,比如基於用戶事件的內容變更。所有 Fragment 之間的交互應通過與之關聯的 Activity 來完成。兩個 Fragment 之間不應直接交互。

  • 爲了讓 Fragment 與包含它的 Activity 進行交互,可以在 Fragment 類中定義一個接口,並在 Activity 中實現。(必須實現接口)

  • Activity 中實現接口後調用的方法,用來和Fragment進行交互。

@Override
    public void setSelectedFragment(BaseFragment selectedFragment) {

    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章