1.了解Fragment
1.有自己的生命周期。
2.Fragment依赖于Activity。
3.Fragment通过getActivity()可以获得所在的Activity;Activity通过FragmentManager的findFragmentById()或者findFragmentByTag()获取Fragment。
4.Fragment和Activity是多对多的关系。
5.Fragment的优势:
模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。
可重用(Reusability):多个Activity可以重用一个Fragment。
可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。
2.Fragment使用
使用Fragment有两种方式,分别是静态加载和动态加载
2.1静态加载
- 定义Fragment的xml布局文件
- 自定义Fragment类,继承Fragment类或其子类,同时实现onCreate()方法,在方法中,通过inflater.inflate加载布局文件,接着返回其View
- 在需要加载Fragment的Activity对应布局文件中的name属性设为全限定类名,即包名.fragment
- 最后在Activity调用setContentView()加载布局文件即可
静态加载一旦添加就不能在运行时删除
示例:
- 定义Fragment布局
- 自定义Fragment类,继承Fragment或其子类,重写onCreateView(),在方法中调用inflater.inflate()方法加载Fragment布局文件,接着返回加载的view对象
public class AFragment extends Fragment {
private TextView mTvTitle;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_a,container,false);
return view;
}
}