1. Fragment 使用時(shí)要有一個(gè)無(wú)參構(gòu)造函數(shù)

如果沒(méi)有無(wú)參構(gòu)造函數(shù),而是像按照普通類來(lái)使用,只創(chuàng)建有參構(gòu)造函數(shù),則會(huì)出現(xiàn) android.support.v4.app.Fragment$InstantiationException 錯(cuò)誤。

原因:Fragment 和 Activity 都是生命周期的組件,不能看做一般的類。如果非要使用有參構(gòu)造函數(shù),可能在使用的時(shí)候第一次傳參沒(méi)有問(wèn)題,但是大概率在后面使用的時(shí)候出現(xiàn)問(wèn)題。因?yàn)镕ragment的什么周期依附在Activity中,如果Activity為null,那么Fragment肯定不能夠正常使用了,比如手機(jī)屏幕的橫豎屏切換導(dǎo)致Activity重建了。

至于為什么是這樣的呢?看下Fragment初始化的源碼,有這么一段: