关于碎片Fragment
我想之前很多面试官问过这个问题,你如何对不同屏幕,不同分辨率大小的屏幕进行处理,因为相同的布局到不同的屏幕上,完全就不一样了,其中一个解决方法是使用dp,dp不是确定尺度,随着不同屏幕它将会做出相对的位置,有点像是比例尺,打个比方现在放的一个按键距离左边2dp,现在换一个大两倍的设备,那么同样,放进去的比例也是一样。当然你直接调Activity也是可以的,但是只能用一次,如何多次使用在不同的设备呢,这里就涉及到了碎片问题,就是Fragment。
Android 3.0以后引入了一个新的核心类就是Fragment,事实上我也不止被面试官问过一次这样的问题,似乎面试安卓的时候,这个问题尤为重要,当时只是涉及到,并没有深究,今天就来把Fragment好好过一遍。
【重用】重用(chong)功能是Fragment得到重用(zhong)的重要原因,毕竟大家不想辛辛苦苦写出来的东西只能用一次吧。
【横屏竖屏】本来布局为上下,作为横屏以后,你当然希望它能合理的成为左右,但是在小的屏幕上,这样的情况就很“尴尬了”虽然两个都出来了,但是都挤得很,于是我就想到分页,左右滑动来看这两个页面,对的碎片的概念非常接近于分页,其实作为Activity也能做到这样的功能,只是大材小用了。最重要的是,当用户点了back键以后,就真的是退出了。而碎片,点了这个back后,还在这个活动中。
【碎片的生命周期】
碎片虽然有自己的生命周期,终归来说还是依附于Activity,具体代码实现就可以提现出这一点,这个你可以以去看我上一篇博客,老大与小弟的故事。
碎片被创建时:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated();
碎片进入后台模式时:onPause()-->onStop();
碎片变为可见时:onStart()-->onResume();
碎片被销毁时:onPause()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach();
到onDetach 的时候,该碎片就不会跟活动绑定了。资源也被释放
上一篇: Tomcat优化
下一篇: 我的第一个Servlet