静态注册
Fragment是个特别的存在,有点像报纸上的专栏,看起来只占据页面的一小块,但是这一小块有自己的生命周期,可以自行其事,仿佛独立王国;并且这一小块的特性无论在哪个页面,给一个位置就行,添 加后不影响宿主页面的其他区域,去除后也不影响宿主页面的其他区域。
每个Fragment都有对应的布局文件,依据其使用方式可分为静态注册与动态注册两类。静态注册是在布局文件中直接放置fragment节点,类似于一个普通控件,可被多个布局文件同时引用。静态注册一般用于某个通用的页面部件(如Logo条、广告条等),每个活动页面均可直接引用该部件。
使用静态注册需要注意以下两点:
(1)fragment节点必须指定id属性,否则App运行时会报错Must specify unique android:id,android:tag, or have a parent with an id for 。
(2)如果页面代码继承自Activity,Fragment类就必须继承自android.app.Fragment,不能使用 android.support.v4.app.Fragment,否则App运行会报错Trying to instantiate a class that is not a Fragment或报 错java.lang.ClassCastException: cannot be cast to android.app.Fragment;如果页面代码继承自 AppCompatActivity或FragmentActivity,那么无论是android.app.Fragment还是android.support.v4.app.Fragment 都可以使用。
另外,介绍一下Fragment在静态注册时的生命周期,如Activity的基本生命周期方法onCreate、onStart、 onResume、onPause、onStop、onDestroy,碎片Fragment都有,而且还多出了下面5个生命周期方法。
- onAttach:与Activity结合。可在该方法中实例化Activity的一个回调对象,在Fragment中调用Acti