Android Fragment(面试基础)

一、Fragment 加载到 Activity 的两种方式

1. 添加 Fragment 到 Activity 的布局文件当中:(添加的 Fragment 要加入name属性,即路径)

2. 动态在 activity 中添加 fragment

//步骤一:添加一个 FragmentTransaction 的实例
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();

//步骤二:用 add() 方法加上 Fragment 的对象 myFragment
MyFragment myFragment = new MyFragment();
transaction.add(R.id.my_container,myfragment,"myFragment");//R.id.my_container 是容器在 Activity 的标志位
transaction.addToBack("myFragment");

//步骤三:调用 commit() 方法使得 fragmentTransaction 实例的改变生效
transaction.commit();

二、FragmentPagerAdapter 与 FragmentStatePagerAdapter 区别

FragmentPagerAdapter 适用于页面较少的情况,FragmentStatePagerAdapter 适用于页面较多的情况

1. ViewPager 页面切换的情况下:
FragmentStatePagerAdapter 在 destroyItem() 方法中 remove 掉了 fragment,因此内存被回收了。
FragmentPagerAdapter 在 destroyItem() 方法中 detach 了 fragment,因此没有回收内存。

三、Fragment 生命周期

Fragment 生命周期与 Activity 生命周期的交互

Fragment 生命周期与 Activity 生命周期.png

四、Fragment 通信

1. 在 Fragment 中调用 Activity 中的方法,getActivity
2. 在 Activity 中调用 Fragment 中的方法,接口回调
3. 在 Fragment 中调用 Fragment 中的方法,findFragmentById

五、Fragment 的 replace、add、remove 方法

add 覆盖原 fragment 添加入一个新 fragment 后, 原来的 fragment 仍然存活;
replace 是先 remove 掉相同 id 的所有 fragment 然后在 add 当前的这个 fragment

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容