Activity中加載不同的fragment / Fragment中加載不同的fragment
主Activity中加載(切換)多個fragment(也可以理解爲activity跳轉fragment)或主fragment中加載(切換)多個fragment
Activity佈局中要有一個fragment佈局空間,比如id名爲main_ FrameLayout
寫兩個fragment類繼承自fragment,比如
fragmentaextends Fragment (這個裏面加載你的view和寫你在這個fragment中的事件)
fragmentb extends Fragment(同理)
注意:view =inflater.inflate(R.layout. fragmenta_layout, container, false);這句話一定要緊挨在oncreatview方法下面!,不然報錯你半天還找不到,我當時就是半天找不到!!
在主Activity的點擊事件(觸發事件)中比如你想點擊A這個按鈕加載fragmenta
執行下面代碼
fragmenta fm1=new fragmenta ();
FragmentManagerFM = getSupportFragmentManager();
FM.beginTransaction().replace(R.id.main_FrameLayout, fm1).commit();
4) 按鈕B.C等等同理,這樣就可以實現在一個Activity頁面加載不同的fragment,或者從一個Activity跳轉到不同的fragment
fragment到Activity
1) Fragment到activity跳轉即爲普通intent跳轉
2) 在當前fragment頁面執行下面代碼:
3) Intent intent = new Intent(getActivity(),MainActivity.class);
fragment到fragment
如果兩個fragment依賴於一個Activity,比如壹的情況,則可以用切換的方法
@Override//核心代碼
2 public void onClick(View v) {
3 //獲取fragment的實例
4 Fragment fragment=new Fragment();
5 //獲取Fragment的管理器
6 FragmentManager fragmentManager=getFragmentManager();
7 //開啓fragment的事物,在這個對象裏進行fragment的增刪替換等操作。
8 FragmentTransaction ft=fragmentManager.beginTransaction();
9 //跳轉到fragment,第一個參數爲所要替換的位置id,第二個參數是替換後的fragment
10 ft.replace(R.layout.fragment1_layout,fragment);
11 //提交事物
12 ft.commit();
13 }
2) 如果兩個fragment依賴於不同的activity,那就直接avticity跳轉。