当面试官突然问你这个问题的时候,觉得Fragment和Activity的区别我知道啊,编码的时候用的很多,感觉对这两个Android的主要控件也是很了解的,但是---->我改怎么说?从哪开始说?这时候就可能有点懵逼了,懵逼不要紧,那我们就一点一点开始扒。
1、从最基础的开始说--->生命周期
Activity有7个生命周期:onCreate(); onStart(); onResume(); onPause(); onStop(); onDestroy(); onRestart();
Fragment有11个生命周期:onAttach(); onCreate(); onCreateView(); onActivityCreate(); onStart(); onResume(); onPause(); onStop(); onDestroyView(); onDestroy(); onDetach();
所以Fragment比较与Activity来说会更加灵活,因为生命周期多了,你可以控制的地方也就多了。
2、从灵活性上来说
Activity是四大组件之一,是每个页面的承载,一个就是一个,Fragment的显示要依赖于Activity,从Fragment的生命周期中就可以了解到。
Fragment是一个一个的小碎片
1)相比较与Activity来说更加灵活,可以在XML文件中直接进行写入,也可以在Activity中动态添加;
2)可以使用show()/hide()或者replace()随时对Fragment进行切换,并且切换的时候不会出现明显的效果,用户体验会好;Activity虽然也可以进行切换,但是Activity之间切换会有明显的翻页或者其他的效果,在小部分内容的切换上给用户的感觉不是很好