同一个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的横竖屏切换
-------------------------------------------
-------------------------------------------