Fragment 面试题

 

一、如何在 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
今日推荐