Fragment 面试题
其他
2020-04-18 23:42:18
阅读次数: 0
一、如何在 Activity 中显示一个 Fragment:
答:使用下面的代码完成,传入布局中的 id 及 Fragment,这里需要需求注意,提交
Frament 有 2 种提交,commit 和 commitAllowingStateLoss,第一种是正常提交,第
二种是在提交过程中压制异常。
getSupportFragmentManager().beginTransaction().replace(resid,
fragment).commitAllowingStateLoss();
二、在 Activity 中添加 Fragment,与向 Frament 中添加 Frament 的区别:
答:向 Activity 里添加 Fragment 使用的是 getSupportFragmentManager();而向
Fragment 中添加 Frament 使用的是 getChildFragmentManager。他们使用的
FragmentManager 是有区别的。
三、如何在 Activity 与 Fragment 中传递数据:
答: 在 Fragment 里调用 getActivity 方法,强转为我们当前的 Activity 后,可以获
取到公共的方法及成员变量;或者使用接口的方法,Activity 实现接口里面的方法
后,在 Frament 的 onAttach(Activity activity) 方法里。保存传入进来的
Activity,并把它强转为我们之前的接口后,就可以在 Frament 里面进行使用了。
四、Activity 和 Fragment 的生命周期是种什么样的关系:
答:Activity 与 Fragment 的生命周期是一种绑定关系,Activity 执行 onResume,
Frament 执行 onResume;Activity 执行 onCreate,Fragment 执行
onAttach,onCreateView,onViewCreated,onActivityCreate,
五、当向 Activity 添加 Fragment 显示到界面后,调用代码隐藏 Fragment 的方法,这时
Framgnent 的生命周期会执行什么?会回调那个方法上?
getSupportFragmentManager().beginTransaction().hide(fragment).commitAllowin
gStateLoss();
答:会回调到 Framgnent 里的 onHiddenChanged(boolean hidden)这个方法上,而
Framgnent 其它生命周期不会被执行。根据判断 onHiddenChanged 参数的 boolean
值,判断界面 show 或者 hide。当 hidden 为 false 界面 Fragment 显示。
六、Window,Activity,Fragment,ViewGroup,View 之间的关系?
答:Window,上面可以添加 View,ViewGroup,显示 Activity。
Activity,上可以添加 View,ViewGroup,Fragment。
Fragment,上可以添加 View,ViewGroup,Fragment。
ViewGroup,上可以添加 View,Fragment。
View 里,不可以添加其它元素,它是最小单位。
七、Fragment 的完整生命周期 与 Activity 的生命周期,请对比写出:
答
发布了406 篇原创文章 ·
获赞 212 ·
访问量 12万+
转载自blog.csdn.net/qq_27248989/article/details/105570531