標籤:
同一個app內的介面切換 用Fragment比較合適,因為Activity比較重量級
Fragment 輕量級,切換靈活
-------------------------------------------
1. 建立和使用 Fragment
2. Fragment 的生命週期 及相關的實際應用
3. 建立一個帶側邊欄的 Activity 以及使用
4. 建立一個 Tabbed Activity 並使用
5. Fragment的使用和狀態儲存
6. Fragment的橫豎屏切換
-------------------------------------------
工程代碼:
-------------------------------------------
1. 建立和使用 Fragment
* 建立一個 帶Fragment的Activity,將Fragment重構到一個新檔案中PlaceholderFragment.java
* 建立另一個Fragment,AnotherFragment.java
* 使用按鈕實現兩個Fragment的切換
1.1 在layout fragment_main中添加一個按鈕btnOpenAnohterFragment, 用於開啟另一個Fragment;
replace, add, hide, show
public class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); rootView.findViewById(R.id.btnOpenAnohterFragment).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub getFragmentManager().beginTransaction() .addToBackStack(null) //支援返回鍵,否則點返回直接退出app .replace(R.id.container, new AnotherFragment()) .commit(); } }); return rootView; }}
1.2 在AnotherFragment 添加按鈕btnBack,用於返回上一個Fragment
public class AnotherFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub View root = inflater.inflate(R.layout.fragment_another, container, false); root.findViewById(R.id.btnBack).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub getFragmentManager().popBackStack(); } }); return root; //super.onCreateView(inflater, container, savedInstanceState); }}
2. Fragment 的生命週期 及相關的實際應用
比Activity的生命週期多很多,
onCreate,onCreateView,onPause是最常用的
3. 建立一個帶側邊欄的 Activity 以及使用
建立 Activity: Navigation Drawer Activity
* 預設效果: 是在onCreateView中添加了一個ListView,來顯示資料
* 自訂側邊欄
4. 建立一個 Tabbed Activity 並使用
5. Fragment的使用和狀態儲存
6. Fragment的橫豎屏切換
-------------------------------------------
-------------------------------------------
Android Fragment基礎