-
Fragment的中文含义是碎片,在之前安卓开发是,用户界面的切换全部使用activity的切换,这就造成了整个应用使用起来速度较慢,而且很占内存,因为activity是重量级的组件,在应用程序内部使用很不方便。
-
于是出现了Fragment来解决这样的问题。Fragment是一种便捷的、轻量级的、基于activity的组件,所谓基于activity,就是必须有activity作为容器,Fragment才可以生存。
-
另外,Fragment 可以动态的添加和删除。所以说Fragment是一种非常方便开发的组件 。
生命周期对比图
FullFragmentAndActivityLifeCycle.png静态使用Fragment
- 使用步骤:
- 1:继承fragment 重写onCreateView()回调方法,设置Fragment的布局
- 2:在Activity中声明Fragment 使用方式和View相同
动态使用Fragment
原来的Fragment创建方式不变,只不过在Activity中和布局文件中需要调整。
- 使用步骤:
- 1:继承fragment 重写onCreateView()回调方法,设置Fragment的布局
- 2: 创建Fragment的管理器对象
- 3: 获取Fragment的事务对象并且开启事务
- 4: 调用事务中相应的动态操作Fragment的方法执行
- 5: 提交事务
FagmentPagerAdapter与FagmentStatePagerAdapter区别
- FagmentPagerAdapter 适用于页面较少的情况
- FagmentStatePagerAdapter 适用于页面较多的情况
Fagment的生命周期
Fagment的生命周期.pngFragment通信
- 在Fragment 中调用Activity中的方法 getActivity
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank,null);
RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.tv_navigation);
layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(),"点我干嘛",Toast.LENGTH_LONG).show();
}
});
return view;
}
-
在Activity中调用Fragment 中的方法,接口回调
-
在Fragment中调用Fragment中的方法 findFragmentById
-
Fragment的replace、 add 、 remove 方法
网友评论